BookItem_Introduction

Marketed and distributed by:-

Version: 2.5

Copyright ©2000,2001,2002 MarrowSoft Limited. ALL RIGHTS RESERVED.

WARNING: This program is protected by copyright law and international treaties.


Welcome to Xselerator

Welcome

Welcome to MarrowSoft Xselerator.

Xselerator is an XSLT IDE (Integrated Development Environment) designed to be used by professional XSLT programmers and novices alike. For the professional XSLT programmer it offers features that enhance and improve productivity - whilst not getting in the way of easy development. For the novice XSLT developer, those learning the XSLT language, Xselerator offers features that enable you to become comfortable and familiar with the language quickly and easily (although Xselerator is not intended as a tutorial on XSLT itself).

Xselerator was designed and developed by a team of programmers who themselves are XSLT developers - hence the features provided are targeted at getting the job done rather than providing a bewildering array of rarely used features that merely clutter up the screen.

The primary intended use of Xselerator is the ability to quickly and easily author XSLT stylesheets and then to test those stylesheets against sample input XML documents. Although Xselerator is quite capable of editing XML files too - it should always be recognised that XML documents will rarely be derived by hand editing (normally being generated from automated routines from a variety of datasources).

The Xselerator debugger then offers further productivity enhancements by allowing XSLT developers to step through their code and see the internal machinations of the transformation - and to easily track down where a stylesheet may not be performing as expected. The Xselerator debugger is also an invaluable learning tool as it allows novice XSLT programmers the ability to see the specific behaviour and characteristics of the XSLT language.

The easiest way to learn how to use Xselerator is just to begin using it. Xselerator has been designed to be easy to use - allowing you to get started quickly and then explore the many other features as and when required. For a quick start on using Xselerator for the first time you can refer to the Getting Started section of this help which offers a step-by-step guide to becoming familiar with the Xselerator user interface. In particular, the Opening your first input files section is a three step guide to opening your first XML and XSL within Xselerator and running your first transformation.


License Agreement

IMPORTANT – PLEASE READ CAREFULLY:-

This License Agreement is a legal agreement between you, either as an individual or as single entity or as a representative of your organisation or company, and MarrowSoft Limited for the computer program (the "SOFTWARE”) accompanying this License Agreement, which includes computer software and any associated media, printed materials and electronic documentation. By installing, copying, or otherwise using the SOFTWARE, you agree to be bound by the terms and conditions of this License Agreement. If you do not agree to the terms and conditions of this License Agreement, then do not install, copy, or use the Product.

LICENSE:

MarrowSoft Limited grants you a nonexclusive, non-transferable license to use the enclosed SOFTWARE on a single computer system, subject to the terms and conditions of this License and this Warranty Agreement. You may not reverse engineer, decompile, or disassemble the SOFTWARE or any accompanying materials including electronic documentation. You may not rent or lease the SOFTWARE or any accompanying materials. You may not publish, disclose or in any way place into the public domain any registration keys or serial numbers issued to you by MarrowSoft Limited. You may not use the SOFTWARE in any way other than as expressly permitted under this License Agreement. Without prejudice to any other rights, MarrowSoft Limited may terminate this License Agreement if you fail to comply with the terms and conditions of this License Agreement. In such event, you must permanently destroy all copies of the SOFTWARE and accompanying materials. You may not sublicense, assign, or transfer the enclosed computer programs to another party unless that party agrees to accept the terms and conditions of this License Agreement.

The SOFTWARE may be moved from one computer to another so long as there is no possibility of two or more persons using it simultaneously and so long as there is no possibility of the SOFTWARE being loaded into memory or executed by two or more persons simultaneously. The SOFTWARE may be installed on more than one computer so long as there is no possibility of two or more persons using it simultaneously and so long as there is no possibility of the SOFTWARE being loaded into memory or executed by two or more persons simultaneously.

The SOFTWARE is owned by MarrowSoft Limited and is protected by United Kingdom copyright law and international treaty provisions. Any unauthorised copying or distribution of this SOFTWARE or accompanying materials shall be deemed as copyright theft and pursued as such as a criminal offence under the provisions of United Kingdom copyright law. Publication, disclosure to a third party or by any means placing into the public domain any registration keys or serial numbers issue to you shall also be deemed as breach of copyright law and international treaty provisions.

LIABILITY:

MarrowSoft Limited shall not be held liable with respect to the SOFTWARE or otherwise for special, incidental, consequential, punitive, or exemplary damages even if advised of the possibility of such damages. In no event shall liability for any reason and upon any cause of action whatsoever exceed the purchase price of the SOFTWARE. If the SOFTWARE is used under trial conditions, without purchase being made, MarrowSoft Limited shall not be held liable for any reason and upon any cause of action.

WARRANTY:

MarrowSoft Limited warrants the physical disk and any documentation enclosed to be free of defects in materials and workmanship for a period of 30 days from date of purchase. MarrowSoft Limited must be notified, in writing, within the warranty period of defects in materials and workmanship for any replacement of the disks or documentation to be considered.

The above warranty is in lieu of all other warranties, whether written, express, or implied. MarrowSoft Limited specifically excludes all and any implied warranties, including, but not limited to, implied warranties of merchantability and fitness for a particular purpose.

This License Agreement shall be governed by the laws of the United Kingdom.

US GOVERNMENT LICENSEE:

If you are acquiring the SOFTWARE on behalf of any unit or agency of the United States Government, the following provisions apply:

The Government acknowledges MarrowSoft's representation that the SOFTWARE is "Restricted Computer Software" as that term is defined in Clause 52.227-19 of the Federal Acquisitions Regulations (FAR) and is "Commercial Computer Software" as that term is defined in subpart 227.471 of the Department of Defense Federal Acquisition Regulation Supplement (DFARS).

The Government agrees that (i) if the SOFTWARE is supplied to the Department of Defense (DoD), the SOFTWARE is classified as "Commercial Computer Software" and the Government is acquiring only "restricted rights" in the SOFTWARE and its documentation as that term is defined in Clause 252.227-7013(c) (1) of the DFARS, and (ii) if the SOFTWARE is supplied to any unit or agency of the Government other than DoD, the Government's rights in the SOFTWARE and its documentation will be as defined in Clause 52.227-19 (c) (2) of the FAR.


BookItem_GettingStarted

Getting Started

This section of the Xselerator help is aimed at users who are new to the Xselerator IDE. The first section, Registration, is a guide to using the Xselerator registration - which you need to complete before being able to use Xselerator. If you have just downloaded and installed Xselerator but haven't yet registered then this is the place you need to start reading at.

The Opening your first input files section is a quick, 3 step guide to opening your first input XML and XSL files and running your very first transformation using Xselerator. From there the Customizing your display sections describe the ways in which you can configure the Xselerator IDE to suit your taste.


Registration

Once you have downloaded and installed Xselerator you can start using it immediately - there is no need to register in order to begin using Xselerator. The initial trial period for Xselerator is 14-days (the 14 days are not consecutive days but individual days - therefore if you use the trial version only once per year it would last for 14 years!). When the initial trial period nears an end you will be offered the option of registering for an extended trial - the extended trial allows you to use Xselerator for a further 21-days. Having registered for an extended trail you will be e-mailed a new trial license that will extend your trial period.

Purchasing Xselerator

You can purchase Xselerator at any time during your trial or extended trial period by pressing the Buy button (on the startup splash screen or from the about dialog). Once you have purchased Xselerator you will be e-mailed a full use certificate and given access to a URL where the full copy of Xselerator may be downloaded from.


Support

Support for Xselerator is provided to all trial and full copy users by e-mail. The e-mail address for support queries is:-

support@marrowsoft.com

Trial users are only offered support for the duration of their trial period - and restricted to questions directly relating to the use of Xselerator (i.e. our support staff cannot offer assistance on learning XSLT itself).

If you are reporting a problem that occurs with a particular XSL stylesheet please attach both the XSL stylesheet and a sample XML document that exhibits the problem. Please zip these files if they are large (excessively large attachments may be rejected by our mail server).

For full users we offer an initial support service of 5 questions (not limited by time). Thereafter, a support contract can be made to provide further ongoing support limited only by the duration of the support contract. For full users of Xselerator your support questions are not limited to questions relating to just the use of Xselerator as we will endeavour to answer any question relating to XSLT itself (depending on the support contract level). For further details of levels and pricing of our support contracts please send an e-mail to:-

sales@marrowsoft.com (with the subject 'Support Contracts').

Before you call for support...

Please refer to our FAQ page which can be found by following the link button from the main product page at MarrowSoft.com. If your question isn't answered on that page then ask away at our support e-mail address above.

Marrowsoft makes no representation as to guarantee of satisfaction provided by answers to support questions. We will endeavour to answer all questions within a timely fashion but make no guarantees as to the turn-around period (unless a support contract is made). Priority is always given to full license users.


Opening your first input files

Once you have registered Xselerator and received your registration key code you are ready to start using Xselerator.

This help page gives an immediate quick start to running your very first transformation using Xselerator:-

Before you start, a quick initiation into some of the terminology used on this page is in order. Throughout this topic certain phrases are highlighted in bold - these are phrases that you will need to become familiar with when using Xselerator.

In the following exercise we will refer to Input XML and Input XSL - whenever you use XSLT it requires two files: the Input XML being the data that is to be transformed and the Input XSL being the XSLT that is to be 'executed' on the XML data. The act of executing an Input XSL stylesheet against an Input XML document is referred to as a Transformation which will produce an Output (the Output being HTML, XML or just text - according to the instruction of any < xsl:output> element present).

Follow the 3 steps below to perform your very first transformation using Xselerator...

1. Open your Input XSL stylesheet

Press the Open Input XSL toolbar button. You will see an open dialog appear and be asked to select an XSL stylesheet (.xsl) file. If you do not have any stylesheet files of your own yet the Xselerator installation should have installed some samples, e.g. try...

C:\Program Files\Marrowsoft\Xselerator\Samples\Examples\Grouping\MultipleKeys\PremiershipTable.xsl

Having loaded the Input XSL stylesheet file you will see the XSL code in the Input XSL window.

2. Open your Input XML document

Press the Open Input XML toolbar button. You will see an open dialog appear and be asked to select an XML document (.xml) file. If you do not have any XML documents of your own yet the Xselerator installation should have installed some samples, e.g. try...

C:\Program Files\Marrowsoft\Xselerator\Samples\Examples\Grouping\MultipleKeys\\PremiershipResults0102.xml

Having loaded the Input XML document file you will see the XML in the Input XML window.

3. Run the Transformation

Press the transformation toolbar button on the main IDE toolbar. Xselerator will now use the Microsoft MSXML 3.0 Parser to perform the transformation and display the output results in the Output Window.

Having performed your first transformation, the Output Window will be showing the source output - i.e. the raw output from the transformation. If you used the example files suggested above you will see a lot of HTML markup - but you may want to see what that HTML would be rendered as (e.g. as the final end-user of your web site would see the page). To do this press...

toolbar button on the Output Window toolbar - now you will see the rendered HTML in Browser View mode.

If your Output Window disappears from view you can bring it back again instantly by pressing...

toolbar button on the main IDE toolbar

You can view the output in various modes, for example in raw source form or rendered HTML as you have already seen. The other two view modes:-

View output as tree - allows you to view the output as a tree of XML nodes (elements, attributes, text etc.).

View output as XML - allows you to view the output as XML in the way that Internet Explorer displays XML documents.

Both of these view modes will only be successful if the output generated was well-formed XML. Output HTML will rarely, if ever, produce well-formed XML. To produce well-formed XML output you need to specify an <xsl:output > element in your XSL stylesheet and set the method attribute to xml.


Customizing Xselerator

The following sections give an overview of the various ways in which you can configure and customize your Xselerator IDE and display. If at any time you make a change to settings with which you are unhappy and are unsure how to revert back to your previous settings then go to the Environment Options, turn off the Save settings on exit option and quit Xselerator - when you restart Xselerator the settings will be restored to those prior to the unwanted changes.


Customizing Xselerator - IDE Layout

IDE Layout

The Xselerator IDE layout can be configured in different ways to suit your taste. For example, when Xselerator is first installed and started up both the Input XML and Input XSL window are docked in the main IDE window. However, some people may prefer to have these windows floating so that they can minimized, moved around etc. The following section is a quick guide to docking and un-docking the input windows.

Docking and Un-docking

The Input XML and Input XSL window can both be viewed as either docked or un-docked. When docked they appear as being part of the main window - when un-docked they appear as independant child windows of the main IDE.

When a window is docked it will look like:-

1) the docked window contours bar can be used to move the window around in the main IDE - hold the mouse button down over this contours bar and drag the window to the position you require. This contour bar may also be used to quickly un-dock the window - by double-clicking on it.

2) the close X button on the docked windows is used to temporarily hide this window. Closing (or actually hiding) the window will not cause the contents of that window to be lost or the file(s) open in that window to be closed. The window can be made visible again by pressing the appropriate button on the main IDE view toolbar (see below).

When a window is un-docked the display may look like:-

1) use the caption bar of the window to move the window around. When the window is dragged over the main IDE window you will see an outline appear - indicating that releasing the drag at this position will dock the window at this poisition.

2) use the minimize button as you would normally use it to minimize the window

3) use the maximize button as you would normally use it to maximize the window

4) use the close X button on the window to temporarily hide this window. Closing (or actually hiding) the window will not cause the contents of that window to be lost or the file(s) open in that window to be closed. The window can be made visible again by pressing the appropriate button on the main IDE view toolbar (see below).

When no windows are currently docked your display may look like:-

To re-dock a window drag the window by its caption bar (2) over the bottom most area of the main IDE window (1). When the window is in position where it will be docked you will notice a rectangle of dotted lines appear at the bottom of the main IDE window. Windows can also be re-docked to the main IDE window using the Environment Options dialog where the dock status for a window can be set using a checkbox.

The docked and un-docked state of the input windows can also be controlled by checking options in the Environment Options dialog (this dialog can be displayed by selecting the Options | Environment Options menu option). These options also allow you to select whether each window is visible.

Closing windows (Disappearing windows!)

The input windows and many other of the Xselerator windows (e.g. the Project Manager window and the XPath Query Analyser window) can be closed when not in use. When one of these windows is closed it does not mean the contents of that window is lost or the file open in that window has been closed. It just means that you have asked Xselerator to hide the window while you are not interested in seeing its content. Having hidden one of these windows you can make it visible again just by pressing the appropriate button on the Main IDE toolbar. For example, press the following toolbar buttons to:-

View the Input XSL window

View the Input XML window

View the Output window

View the XPath Query Analyser window

View the Project Managet window (if a project is currently open)

When windows are restored to view they are restored in their previous position and previous docked state.

Remembering the layout

Once you have setup the layout of the IDE you can shut down Xselerator and the next time you restart it these settings will be restored automatically.


Customizing Xselerator - Environment

Environment

The environment is the various options and settings that instruct Xselerator how to display and behave. All of these options and settings are made using the Environment Options dialog - which can be accessed from the main IDE Options | Environment Options menu.

Views, Toolbars and Statusbars

The Environment Options dialog is also useful for restoring certain window and view settings that, once set, cannot be achieved from the windows themselves. For example, if you double-click on any of the toolbars or statusbars within Xselerator the will disappear - use the Environment Options to make them visible again.

Output Path

When testing a transformation the results are displayed in the Output window. If the output is HTML and you switch the output view to Browser View mode (by pressing the View Output as HTML button on the Output window toolbar) the HTML is rendered as it would be in the final browser. But if you have images in your HTML these will not be displayed as the href (URL) of these may be relative to the HTML documents path. Using the output path option in Xselerator you can ensure that these images appear in the final browse view mode by instructing Xselerator to assume a certain path will be that from which relative paths are evaluated.

Debugger

The Environment Options has options for instructing how the Xselerator debugger will operate. The debugger has ceratin options that must be set prior to starting a debug session - these options can be set in the Envrionment Options. The Envrionment Options debugger tab will also inform you if the Xselerator debugger is installed correctly and available for use - if it is not there are instructions as to how the debugger can be installed.

Recent Files

Xselerator will remember files that you have opened before so that you can re-open them quickly using the drop-down menus from the open buttons on the toolbars. However, you may want to control the number of files that Xselerator remembers, clear the files that Xselerator has remembered or just control the way in which these files are displayed in the menus (i.e. whether to show the full path of the file or not in the menu). The Envrionment Options has the options you require for controlling these behaviours.

Transformation Engine

The Environment Options also has settings for determining which transformation engine Xselerator is to use. Xselerator always uses the MSXML parser engine when performing debug transfromation sessions - but you may wish to compare the transformation results between different engines to ensure that your XSLT code is portable.

XSL Help

A useful feature of Xselerator is that it can use the MS XML SDK help files to show context help on particular XSL elements, XPath syntax and functions etc. Before Xselerator can call these help files you must instruct Xselerator where these help files can be found - which is set in the Environment Options. Once you have set-up the location of the SDK help files you use Ctrl+F1 in the XSL editor to bring up context help on the currently selected (i.e. where the cursor is) XSL element. Several of the Xselerator dialogs also have the ability to call the SDK help files for context help (e.g. Interactive XSL dialog, XPath Query Builder).

HTML Tidy

Sometimes when loading XML, XSL and HTML files you will find that all of the text within the file is on one line. Although this is perfectly acceptable for parsers it does make the file difficult to read. On many of the toolbars you will see a Tidy button which can reformat these files so that they are more readable. But to use this option you must have the HTML-Tidy (TidyCOM) component installed on your machine (the URL links for downloading this component can be found in the Envrionment Options dialog and in this help file under Additional Information).

Having installed the HTML Tidy (TidyCOM) component you may want to adjust the options of how it performs its tidy opeartion - these options can be set in the Environment Options dialog.


Customizing Xselerator - Editor display and behaviour

Editor display and behaviour

The editor display characteristics and behaviour within Xselerator are fully customisable. All of these options and settings are adjusted in the Editor Options dialog - which can be displayed by selecting the Options | Editor Options menu item from the main IDE window menus.

The highlighting colours, editor font, editor behaviour, treeview colours, etc. are all configurable from the Editor Options dialog (and the help on this dialog describes the use and effect of each of these options).

Playing with the options

When you first install Xselerator use the editor and see how it behaves and displays your code. Then adjust individual options to see if they are more suitable to your expectation of how the editor displays and behaves. We recommend that you adjust each option individually and then test if this suits your requirements - adjusting many options at the same time will cause multiple effects, some of which will impact on one another - and you may have difficulty restoring the options to something more comfortable.


BookItem_Features

Xselerator Features

This section describes the current Xselerator key features and those features/enhancements due for release in forthcoming versions.


Key Features

Editor

Clear and easy to use IDE;

XSL/XSLT element, attribute and attribute value intuitive (like intellisense or code insight) drop-downs;

XSLT attribute value intuitive shows available template names, modes and param names etc.;

Automatic tag completion

XSL/XSLT tag completion follows model and, optionally, fills element with mandatory attributes;

HTML element, attribute and attribute value intuitive drop-downs;

Full XSL, XSLT, XML and HTML color syntax highlighting (fully customizable);

All the usual editor capabilities (cut, copy, paste, find, replace) plus special 'Copy as RTF' and 'Copy as HTML' features allowing syntax highlighting to be preserved when copying and pasting to word-processors, HTML editors, training presentations and newsgroups etc.;

Numerous additional editor settings allowing editor behaviour to be fully customizable.

XSLT debugger

Full stepping capability;

Step into included/imported stylesheets;

Step over templates, for-each loops etc.;

Breakpoints on both XSLT and input XML;

Conditional breakpoints;

View template call stack;

Watch values (including full XPath expression watches);

Optional stepping into built-in rules;

Uses MSXML3 transformations (so that debugging session behavior matches a real, production environment transformation engine).

Transformation

One click transformation test;

Full transformation testing (including XSL parameter passing, start mode and output test path);

Use of alternative command line transformation engines (e.g. Instant Saxon, XT, Xalan, etc.).

Wizards

XSLT for building tables;

Selects/list boxes;

XSLT grouping/distinct expressions.

Tools

XPath query analyzer (test XPath queries to see the results - click on resulting list item to view position to node in source/tree view);

Query Environments - set up environments (such as keys, variables, namespaces) in which to test XPath queries;

Project Files Manager, which keeps all your related XML and XSL files together;

Source edit, tree and browser view (requires IE5.x) modes;

Files opened history (re-open previous files from menu - re-opened XSLT files restore previous parameters/start mode);

Print and print preview (with selectable highlighting options);

XML, HTML Tidying (using HTMLTidy/TidyCOM).


What's New

Attribute Value Intuitive (Intellisense)

Attribute value intuitive for XSL/XSLT and HTML attributes;

Powerful XSLT attribute value intuitve gives, for example, suggestions for <xsl:call-template> @name attribute and <xsl:with-param> @name attribute;

HTML style attribute values can use BradSoft TopStyle (v2.5) to create CSS style values;

Debugger

Stepping into included/imported stylesheets;

Infinite and maximum recursion checking (and debugging up to recursion point);

New Step-over, Step out of, Step backward, Run to end and Restart capabilities;

Improved breakpoint features:-

Breakpoints now independant of bookmarks;

Unlimited numbers of breakpoints on input XML and XSL

Unlimited number of breakpoints on each line;

XML breakpoints now settable on all node types;

New short-cut keys for breakpoint activity;

Set breakpoints on line by clicking editor gutter - appropriate element on line is automatically selected;

Improved breakpoint condition processing performance;

New breakpoint disabling/enabling feature;

Save and restore of set breakpoints on stylesheets between Xselerator sessions;

Visual indication of when breakpoint has been set on a position that may not be stopped on

Enhanced Built-in Rule template displays and processing;

New look debugger toolbar buttons;

Save and restore of set watches between Xselerator sessions;

Improved incremental output analysis - right-click on output to find the XSL (and context XML node) that generated the output

Performance enhancements;

User Defined Prefixes

New UDP (User Defined Prefixes) feature allows the configuration of namespace prefixes with language implementations - offering element/attribute/attribute value intuitive (intellisense). Each defined UDP can be configured with its own highlighting colours;

Supplied with UDP configuration files for XSL-FO and SVG

Enhanced encoding support

Direct support for over 50 encodings (including UTF-7, full ISO-8859-x, Big5, Shift-JIS etc. - dependant on Windows version and capabilities);

Enhanced encoding detection and conversion;

Transformation output encoding detection

XPath Query Analyser

Complex query execution - offering the ability to execute XPath queries that return non node-set results;

Query Environments - allows keys and variables to be defined and used in XPath queries;

Query against debugger environment - allows current debug session defined variables, params and keys to be used within XPath expression

Output viewing

Support for SVG and XSL-FO rendered output viewing (SVG requires Adobe SVG viewer plugin, XSL-FO requires external FOP engine);

Optionally set output browse, HTML, SVG and XSL-FO view modes to call default external display application

Enhanced stylesheet navigation

Open included/imported stylesheet at cursor;

Goto template at cursor;

Template Navigator - shows all templates within the current (and imported/included) stylesheets

User Interface

Stay on top and dockable selection for all tool windows;

Full screen hotkey for XSL window (F10) and XML window (F11)

Editing

Tab and Shift-Tab now perform block indent and unindent (when lines selected)

Interaction between Auto and Extended Auto tag completion options (turning off Auto tag completion but having Extended Auto tag completion on means that all close tags are added to the unclosed tag list automatically)

Improved editor performace;

Snippet Library

Hotkeys for favourites;

Cursor positioning within snippet when inserted

Transformation Engine configuration

Up to 16 transformation engines may now be configured (with example configurations for popular transformation engines);

MSXML4 internal transformation support added


Coming soon

The development and enhancement of Xselerator is constant and on-going. Entirely new features and additions to the existing features are being developed all the time. This version of Xselerator was released with the features that were felt to be complete - but there were more features that just weren't ready for this release. The planned enhancements and entirely new features are as follows:-

XML Intuitive - a facility to show XML drop-downs in the XML code editor that suggest element and attribute names. The suggested element and attribute names will be model sensitive, being taken from either an internal Schema/DTD or a specified external Schema/DTD. The drop-downs will also give suggestions for attribute values where they are specified within the Schema/DTD.

Tree View editing (enhancement) - This version of Xselerator only supports viewing of the input XML and XSL in tree view mode. Future versions will support full editing of the XML and XSL source from within the tree view - including editing of the script displays and full drag'n'drop editing of the tree.

Performance (enhancements) - various performance improvements and enhancements have been identified and will be incorporated into future version releases. Many performance enhancements have been implemented over recent versions - especially optimizing the debugger compilation mechanism for large input XML files.

We are always open to new suggestions that will enhance Xselerator and help you be more productive. If you have any suggestions for new features or enhancements then please let us know.


BookItem_Reference

User Reference

Use this section of the Xselerator help for reference and information on each of Xselerators windows, dialogs and other features.


Xselerator IDE (main window)

The Xselerator application is contained within a single main window - or the IDE. The other windows (such as the Input XSL window and Input XML window) reside within this window (if docked) or are children of this window (when not docked). For further information and guidance on how to adjust the display of the Xselerator main window please refere to the Getting Started - Customizing Xselerator topic in this help.

The main window is where the menus can be found for performing the various actions associated with performing tasks within Xselerator. These actions can also often be performed by using the appropriate short-cut key (see also Editor Keys reference) or by using the appropriate button on the toolbar.


Main Form Toolbars

Toolbars

The main IDE has the following toolbars:-

Edit Toolbar

XSL Toolbar

View Toolbar

The toolbars can be moved around by holding the mouse button down over the toolbars 'dimple' and dragging or sliding the bar to the desired position. The toolbar positions are saved on exit from Xselerator so that when restarted the toolbar positions are restored. If any of the toolbars are not required they can be turned off (hidden) in the Environment Options.


Edit Toolbar

Undo [Ctrl+Z] - undo the last edit change in the current editor. The limit of undo's is defined in the Editor Options, as is the facility to undo after a save has taken place.
If this button is disabled then there are no changes to undo or an editor is not currently active.

Redo [Shift+Ctrl+Z] - redo the last undone change in the current editor.
If this button is disabled then there are no undone changes to be redone or an editor is not currently active.

Cut [Ctrl+X or Shift+Del] - cut the currently selected text in the current editor.
If this button is disabled then there is no text selected or an editor is not currently active.

Copy [Ctrl+C or Ctrl+Ins] - copy the currently selected text in the current editor.
If this button is disabled then there is no text selected or an editor is not currently active.

Paste [Ctrl+V or Shift+Ins] - paste text in the clipboard to the current editor.
If this button is disabled then there is no text in the clipboard or an editor is not currently active.

Search [Ctrl+F] - search for text in the current editor.
If this button is disabled then an editor is not currently active.

Find Next [F3] - find again search/replace text in the current editor.
If this button is disabled then a search/replace has not been initiated or an editor is not currently active.

Replace [Ctrl+R] - find and replace text in the current editor.
If this button is disabled then an editor is not currently active.


XSL Toolbar

Transform [F9] - transform the current Input XSL using the current Input XML. On completion of the transformation the Output window is shown (although automatic display of the output window can be suppressed in the Environment Options).

The transform engine used is the last transform engine selected or the one previously defined as the default in the Environment Options. The drop-down arrow part of the Transform button allows you to select from the transformation engines previously set up in the Environment Options.

Set stylesheet parameters and start mode prior to running a transformation. Parameters are passed to the stylesheet and received by <xsl:param> elements within the stylesheet (currently Xselerator only supports the passing of string type parameters). The start mode defines the mode in which the transformation is executed - and as interpreted by @mode attributes on <xsl:template> elements. (See also Stylesheet Parameters & Mode dialog).
Parameters and start modes are remembered for each stylesheet opened in Xselerator (being stored in the Xselerator registry settings). Therefore, if you re-open an stylesheet where parameters or start mode were defined then those parameters and start mode will be restored automatically.

This button is disabled if the currently selected language is XSL rather than XSLT. The current language can be selected using the toolbar buttons on the Input XSL window (see also Input XSL window toolbar) and can be automatically determined by Xselerator when stylesheet is created or opened (using the Auto select XSL Language in the Editor Options).

Debug [Ctrl+F9] - run a debug transformation on the current Input XSL using the current Input XML.
As with a normal transformation, the debug transformation is started using the parameters and start mode defined. On starting a debug transformation the Debug window will appear.
This button is disabled if the currently selected language is XSL rather than XSLT - this version of Xselerator only supports debugging of XSLT.

If a debug session is already running then this button can be used to ensure that the debug window is made visible.

Step/Step into [F8] - execute the next step in the transformation.

Step over [F7] - execute the next step in the transformation without stepping into templates, for-each loops etc.

Step out of [Ctrl+F7] - step out of the current <xsl:template>

Run to breakpoint [Ctrl+F8] - run the debug transformation run until either a breakpoint is encountered in the Input XSL or Input XML (where the condition for that breakpoint, if set, evaluates to true and the breakpoint is enabled).
This button is disabled when no breakpoints have been set in either the Input XML or XSL.

Run to end [Alt+F7] - run the debug transformation to the very last step (the debug session halts on the last step without ending the debug session).

Step backward [Alt+F8] - rewind the last executed step in the debug transformation.

Restart [Shift+Ctrl+F9] - restart the debug session from the start (without requiring the debug session to be re-compiled).

Stop Debug [Alt+F9] - stop the debug session and return to normal editing.

Clear all breakpoints [Alt+Ctrl+F5] - clear all breakpoints in all stylesheets and the input XML document.


View Toolbar

View the Input XSL window [Shift+Ctrl+S]
Pressing this button will ensure that the Input XSL window is fully visible.

View the Input XML window [Shift+Ctrl+X]
Pressing this button will ensure that the Input XML window is fully visible.

View the Output window [Shift+Ctrl+O]
Pressing this button will ensure that the Output window is fully visible.

View the XPath Query Analyser window [Shift+Ctrl+Q]
Pressing this button will ensure that the XPath Query Analyser window is fully visible.

View the Project Manager window [Shift+Ctrl+P]
Pressing this button will ensure that the Project Manager window is fully visible.
This button is disabled when there is not project opened.


XSL Parameters and Mode

XSL Parameters & Mode

The XSL Parameters & Mode dialog allows you to pass parameters to the stylesheet when it is transformed (or debugged) and allows you to set the start mode for the stylesheet.

Parameters:-

Set the parameters you wish to send by pressing the Add button and entering the parameter name, namespace URI and value to be passed.

The namespace URI for parameters is only required where the parameter has a namespace prefix, for example:-

     <xsl:stylesheet version="1.0"

       xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

       xmlns:test="urn:test">

     <xsl:param name="test:abc" select="'@@@'"/>

where the namespace URI for the parameter should be set to urn:test and the parameter name should be set to abc.

To remove a parameter from the list highlight the parameter to be removed and press the Delete button.

The Auto detect parameters allows Xselerator to scan the current input XSLT code for any <xsl:param> elements that are gloabl (i.e. a child of the <xsl:stylesheet> element). Xselerator will then populate the parameters list with the appropriate parameter names and namespace URIs.

When pressing the Auto detect parameters button if there already some parameters entered in the list you will be asked if you wish to clear these existing parameters. If you do not clear the existing parameters the auto-detected parameters will be added to the current list (but some duplication of parameters may occur if any of the auto-detected parameters have already been entered).

Mode:-

If required, set the start mode for the stylesheet by checking the Use mode option on and entering the mode. The mode entered should normally match a mode attribute specified in one of the <xsl:template> elements of the stylesheet.

Note: Parameters are passed to alternate transformation engines but currently the mode is not. Both parameters and mode are always passed to MSXML when performing transformations and when running debug sessions.


Find Text

The Find Text dialog box searches the currently active XML document or XSL stylesheet for the specified text using the options set. To display the Find Text dialog box either choose Find from the Edit menu or press Ctrl+F.

Text to find

Enter the text to search for or click upon the down arrow next to the edit box to select from a list of previously entered search texts.

Options | When Checked/Changed
Case sensitive | When selected Xselerator searches the document for instances that matches the search text case for case.
Whole words only | Searches for instances that are not part of a longer string.

Direction | When Checked/Changed
Forward | Search from the current cursor position to the end of the file.
Backward | Search from the current cursor position to the beginning of the file.

Scope | When Checked/Changed
Global | The entire file is searched in the direction specified by the Direction setting.
Selected text | Only the selected text is searched respecting the direction setting. If no text is currently highlighted then the entire document is searched.

Origin | When Checked/Changed
From cursor | Searching starts from the cursor's current position, and then advances to the beginning or the end of the file depending on the direction setting.
Entire scope | The entire extent specified by the scope option is searched regardless of the current cursor position.


Replace Text

The Replace Text dialog box searches the current active XML document or XSL stylesheet for the specified text using the options set and replaces it with the text entered in the Replace with edit box. To display the Replace Text dialog box either choose Find from the Edit menu or press Ctrl+R.

Text to find

Enter the text to search for or click upon the down arrow next to the edit box to select from a list of previously entered search texts.

Replace with

Enter the replacement text or click upon the down arrow next to the edit box to select from a list of previously entered replacement texts.

Options | When Checked/Changed
Case sensitive | When selected Xselerator searches the document for instances that matches the search text case for case.
Whole words only | Searches for instances that are not part of a longer string.
Prompt on replace | A dialog is displaying prompting for confirmation before the selected text is replaced.

Direction | When Checked/Changed
Forward | Search from the current cursor position to the end of the file.
Backward | Search from the current cursor position to the beginning of the file.

Scope | When Checked/Changed
Global | The entire file is searched in the direction specified by the Direction setting.
Selected text | Only the selected text is searched respecting the direction setting. If no text is currently highlighted then the entire document is searched.

Origin | When Checked/Changed
From cursor | Searching starts from the cursor's current position, and then advances to the beginning or the end of the file depending on the direction setting.
Entire scope | The entire extent specified by the scope option is searched regardless of the current cursor position.


Main Form Menus

Menus

The main IDE has the following menus:-

File menu

Edit menu

View menu

Transform menu

Debug menu

XSL menu

Options menu

Help menu

The IDE menu bar can be moved around amongst the other IDE toolbars - this is done by holding the mouse button down over the menu 'dimple' and dragging or sliding the menu to the desired position. Unlike the other IDE toolbars the menu cannot be hidden.


Main Form Menus - File

File Menu

Menu Item | Action
New Input XSL | Creates a new, untitled XSL stylesheet in the Input XSL window.
Open Input XSL... | Opens a different XSL stylesheet in the Input XSL window.
Download Input XSL... | Downloads an XSL stylesheet from a http URL and places the XSL into the Input XSL window.
Reopen XSL | Reopens a previously opened XSL stylesheet. This option is a sub-menu containing a list of the recently opened XSL stylesheets. Recent XSL files can be limited and cleared in the Environment Options.
Save Input XSL | Saves the current XSL stylesheet.
Save Input XSL as... | Saves the current XSL stylesheet as a different file.
Close | Closes the currently selected XSL stylesheet.
Close All | Closes all currently opened XSL stylesheets.
New Input XML | Creates a new, untitled XML document in the Input XML window.
Open Input XML... | Opens a different XML document in the Input XML window.
Download Input XML... | Downloads an XML document from a http URL and places the XML into the Input XML window.
Reopen XML | Reopens a previously opened XML document. This option is a sub-menu containing a list of the recently opened XML documents. Recent XML files can be limited and cleared in the Environment Options.
Save Input XML | Saves the current XML document.
Save Input XML as... | Saves the current XML document as a different file.
New Project | Creates a new, untitled project in the Project Manager window.
Open Project... | Opens a different project in the Project Manager window.
Reopen Project | Reopens a previously opened project. This option is a sub-menu containing a list of the recently opened projects.
Save Project | Saves the current project.
Save Project as... | Saves the current project as a different file.
Close Project | Closes the currently opened project.
Page setup | Allows the page and print settings to be altered in the Page Setup dialog.
Print Preview | Shows a preview of the print in the Print Preview window.
Print | Prints the contents of the currently active editor.
Exit | Exits from Xselerator. All settings are saved unless this option is turned off in the Environment Options.


Main Form Menus - Edit

Edit Menu

Menu Item

Action

Undo

Undo the last edit change in the current editor. The limit of undo's is defined in the Editor Options, as is the facility to undo after a save has taken place.

Redo

Redo the last undone change in the current editor.

Cut

Cut the currently selected text in the current editor.

Copy

Copy the currently selected text in the current editor.

Paste

Paste text in the clipboard to the current editor.

Copy as RTF

Copy the currently selected text in the current editor as RTF (Rich Text Format) into the clipboard buffer. This copied RTF can then be pasted into word processor documents, RTF files and newsgroup postings as syntax highlighted code.

Copy as HTML (code)

Copy the currently selected text in the current editor as HTML into the clipboard buffer. This copied HTML can then be pasted into word processor documents, HTML editors (such as Microsoft's FrontPage) and newsgroup postings as syntax highlighted code.

The code version of HTML is used to preserve indentation in the copied HTML by placing the generated HTML within <PRE> tags.

Copy as HTML (presentation)

Copy the currently selected text in the current editor as HTML into the clipboard buffer. This copied HTML can then be pasted into word processor documents, HTML editors (such as Microsoft's FrontPage) and newsgroup postings as syntax highlighted code.

Find

Search for text in the current editor.

Find next

Find again search/replace text in the current editor.

Replace

Replace text in the current editor.


Main Form Menus - View

View Menu

Menu Item | Action
Input XSL | View the Input XSL window. Selecting this item will ensure that the Input XSL window is fully visible.
Input XML | View the Input XML window. Selecting this item will ensure that the Input XML window is fully visible.
Output | View the Output window. Selecting this item will ensure that the Output window is fully visible.
XPath Query Analyser | View the XPath Query Analyser window. Selecting this item will ensure that the XPath Query Analyser window is fully visible.
Project Manager | View the Project Manager window. Selecting this item will ensure that the Project Manager window is fully visible.


Transform Menu

Menu Item

Action

Transform

Transform the current Input XSL using the current Input XML. On completion of the transformation the output window is shown (although automatic display of the output window can be suppressed in the Environment Options).

XSL Parameters & Mode...

Set stylesheet parameters and start mode prior to running a transformation. Parameters are passed to the stylesheet and received by <xsl:param> elements within the stylesheet (currently Xselerator only supports the passing of string type parameters). The start mode defines the mode in which the transformation is executed - and as interpreted by @mode attributes on <xsl:template> elements. (See also XSL Parameters & Mode dialog).
Parameters and start modes are remembered for each stylesheet opened in Xselerator (being stored in the Xselerator registry settings). Therefore, if you re-open an stylesheet where parameters or start mode were defined then those parameters and start mode will be restored automatically.

This item is disabled if the currently selected language is XSL rather than XSLT. The current language can be selected using the toolbar buttons on the Input XSL window (see also Input XSL window toolbar) or the language selection menu items on this menu (see below). XSL Language selection can be automatically determined by Xselerator when stylesheet is created or opened (using the Auto select XSL Language in the Editor Options).

Transformation Engines

Shows a sub-menu of the currently configured transformation engines. Select from the menu to make a specific transformation engine the default for transformations.

Transformation engines can be configured in the Environment Options dialog.


Debug Menu

Menu Item | Action
Debug | Run a debug transformation on the current Input XSL using the current Input XML. As with a normal transformation, the debug transformation is started using the parameters and start mode defined. On starting a debug transformation the Debug window will appear. This item is disabled if the currently selected language is XSL rather than XSLT - this version of Xselerator only supports debugging of XSLT.
Step/Step into | Execute the next step in the transformation.
Step over | Execute the next step in the transformation without stepping into templates, for-each loops etc.
Step out | Step out of the current <xsl:template>
Run to breakpoint | Run the debug transformation run until either a breakpoint is encountered in the Input XSL or Input XML (where the condition for that breakpoint, if set, evaluates to true and the breakpoint is enabled). This menu item is disabled when no breakpoints have been set in either the Input XML or XSL.
Run to end | Run the debug transformation to the very last step (the debug session halts on the last step without ending the debug session).
Step backward | Rewind the last executed step in the debug transformation.
Restart | Restart the debug session from the start (without requiring the debug session to be re-compiled).
Stop debug | Stop the debug session and return to normal editing.
Clear all breakpoints | Clear all breakpoints in all stylesheets and the input XML document.


Main Form Menus - XSL

XSL Menu

Menu Item | Action
XSL Elements | If the XSL Elements interactive attributes option is checked (see below) then selecting this menu item shows the XSL Elements interactive dialog - where an XSL element can be selected and it's attributes filled in prior to inserting the element into the XSL code. If either the XSL Elements mandatory attributes or XSL Elements optional attributes option is checked (see below) then this menu item shows a sub-menu of the XSL elements for the currently selected XSL language. Selecting an item from this sub-menu inserts the XSL element code at the current cursor position in the XSL editor.
Snippet Library... | Shows the Snippet Library dialog with a list of snippets that can be selected and inserted into the XSL at the current cursor position.
Snippets... | Shows a sub-menu of favourite snippets in the current snippet library - select an item from the sub-menu to insert that snippet at the current position in XSL editor.
Snippet Library Manager | Shows the Snippet Library Manager dialog which allows a snippet library to be loaded and snippets in the current library to be added, modified and deleted.
Template Navigator | Opens or shows the Template Navigator. The Template Navigator shows a summarised list of the templates and import/includes within the current stylesheet and can be used to navigate around the stylesheet by template.
XSL Table Wizard | Selecting this item shows the XSL Table Wizard - which performs a step-by-step creation of XSL code required to build HTML tables from the Input XML.
XSL Select Wizard | Selecting this item show the XSL Select Wizard - which performs a step-by-step creation of the XSL code required to build HTML selects/listboxes from the Input XML.
XSLT Distinct Wizard | Selecting this item shows the XSL Distinct/Grouping Wizard - which performs a step-by-step creation of the XSLT code required to build distinct/grouping selections from the Input XML.
XSL Elements interactive attributes | When this item is checked then selecting the XSL Elements menu item (see above) displays the XSL Elements interactive dialog and when an XSL element is selected from the XSL Elements toolbar button on the Input XSL window the XSL Elements interactive dialog is shown with the selected XSL element already selected.
XSL Elements mandatory attributes | When this item is checked then selecting an XSL element causes the element with only its mandatory attributes to be inserted into the XSL code at the current cursor position.
XSL Elements optional attributes | When this item is checked then selecting an XSL element causes the element with all of its attributes (mandatory and optional) to be inserted into the XSL code at the current cursor position.
XSL Language XSLT Language | These two items toggle the currently selected XSL language between XSL (Working Draft) and XSL (Transform - or XSLT). Regardless of the currently loaded stylesheets xmlns:xsl namespace the language can be set using these menu items - the source XSL code in the Input XSL editor being highlighted accordingly. The selected XSL language also controls the elements and attributes suggested in the XSL Intuitive drop-downs and the elements shown in the XSL Elements menu list (see below). If the Auto select XSL language option is checked in the Editor Options these items are automatically updated when a new stylesheet is created or a stylesheet is loaded.


Main Form Menus - Options

Options Menu

Menu Item | Action
Editor Options | Opens the Editor Options dialog.
Environment Options | Opens the Environment Options dialog.
Project Options | Opens the Project Options dialog.


Main Form Menus - Help

Help Menu

Menu Item | Action
Help | Shows this help file.
MSXML 3.0 SDK Help | Shows the Microsoft® MSXML 3.0 SDK Help This option is only visible if Use MSXML SDK Help option is checked in the Environment Options.
MSXML 2.5 SDK Help | Shows the Microsoft® MSXML 3.0 SDK Help This option is only visible if Use MSXML SDK Help option is checked in the Environment Options.
Register... | Shows the Registration dialog - this dialog is where you enter your details and Registration Key Code (to begin using your full copy or free 30-day trial copy of Xselerator).
About... | Shows copyright and version information of Xselerator.


Editor Intuitives

The Xelerator editors utilise many intuitive (intellisense) drop-downs during editing of XSL code. The intuitive dropd-downs are in three categories:-

Element intuitve

The element intuitive drop-downs for HTML elements appear as soon as you type a < in the XSL or output editors. You can then type the partial name of the HTML tag you require or continue to type a namespace prefix. When you type a namespace prefix, for example xsl, as soon as you type the : (colon) character the intuitive will change to display the drop-down intuitive for that namespace. The recognition of the namespace prefix is dependant on which editor you are using and what UDP (User Defined Prefix) files you have configured (see User Defined Prefixes).

Attribute intuitive

The attribute intuitive drop-downs appear when you press the space character within an element that is known to Xselerator (i.e. XSL, HTML or elements defined in a UDP). The intuitive drop-down presents the attributes known to that element - excluding those attributes that have already been specified within the current element.

Attribute Value intuitive

The attribute value intuitive drop-downs appear when the cursor is between empty quote (single or double) marks that define the value of an attribute know to Xselerator (i.e. an attribute defined in XSL, HTML or a UDP). Attribute value intuitives only appear where Xselerator has known full or partial value suggestions for that attribute. Some of the attribute value intuitive drop-downs also have an builder button shown in them - for example if type:-

<table bgcolor="

the attribute value intuitive drop-down will display a list of standard colors with a color picker option at the bottom - for example you would see:-

To obtain the color picker you can either press the button at the bottom of the drop-down or press Ctrl+downarrow. On displaying the color picker and selecting a color the color code will be placed into your code automatically.

HTML Intuitive drop-downs

All of the intuitive drop-downs are case-insensitive - although the code that is completed on selecting from the drop-down uses the appropriate casing for that element or attribute. However, HTML elements and attributes are not defined as requiring any specific case (HTML elements and attributes can be in either upper or lower case). The case used for HTML elements and attributes is normally down to your personal preference - therefore Xselerator provides options for controoling the case when items are inserted from the intuitive drop-downs. The casing of inserted HTML elements and attributes is controlled from the Editor Options and may be set to one of three options:-

Uppercase

Elements and attributes selected from the intuitive drop-downs are always inserted in uppercase

Lowercase

Elements and attributes selected from the intuitive drop-downs are always inserted in lowercase

As first character

Elements and attributes selected from the intuitive drop-downs use the case of the first character typed.


Editor Keys Reference

The following tables provide a reference to the key combinations and their associated actions whilst in the editors. The editor keys are common to all the editors (Input XML, Input XSL and Output HTML/XML).

Editor keys reference - by action

Editor keys reference - by key combination

Editor keys reference - by grouping


Editor keys reference - by action

Action | Key combination
Block indent | Shift+Ctrl+I Tab (when lines selected)
Block unindent | Shift+Ctrl+U Shift+Tab (when lines selected)
Bottom of file | Ctrl+End
Column select mode | Shift+Ctrl+C
Copy | Ctrl+Ins
 | Ctrl+C
Cut | Shift+Del
 | Ctrl+X
Delete character | Del
Delete character left | BkSp
Delete line | Ctrl+Y
Delete to end of line | Shift+Ctrl+Y
Delete word | Ctrl+T
Delete word left | Ctrl+BkSp
Down one line | Down
Extended auto tag complete (store) | Shift+Ctrl+>
Extended auto tag complete (close all) | Shift+Ctrl+<
Goto bookmark 0...9 | Ctrl+0...9
Insert line | Ctrl+N
Insert mode toggle on/off | Ins
Left one character | Left
Left one word | Ctrl+Left
Line end | End
Line select mode | Shift+Ctrl+L
Line start | Home
Match bracket | Shift+Ctrl+B
New line/line break | Enter
 | Ctrl+M
Normal select mode | Shift+Ctrl+N
Paste | Shift+Ins
 | Ctrl+V
Page bottom | Ctrl+PgDn
Page down | PgDn
Page top | Ctrl+PgUp
Page up | PgUp
Redo | Shift+Ctrl+Z
 | Shift+Alt+BkSp
Right one character | Right
Right one word | Ctrl+Right
Scroll down one line | Ctrl+Down
Scroll up one line | Ctrl+Up
Select all | Ctrl+A
Select character left | Shift+Left
Select character right | Shift+Right
Select line down | Shift+Down
Select line up | Shift+Up
Select page down | Shift+PgDn
Select page up | Shift+PgUp
Select to bottom of file | Shift+Ctrl+End
Select to line end | Shift+End
Select to line start | Shift+Home
Select to page bottom | Shift+Ctrl+PgDn
Select to page top | Shift+Ctrl+PgUp
Select to top of file | Shift+Ctrl+Home
Select word left | Shift+Ctrl+Left
Select word right | Shift+Ctrl+Right
Set bookmark 0...9 | Shift+Ctrl+0...9
Tab/indent | Tab
 | Shift+Tab
Top of file | Ctrl+Home
Undo | Alt+BkSp
 | Ctrl+Z
Up one line | Up


Editor keys reference - by key combination

Key combination | Action
BkSp | Delete character left
Del | Delete character
Down | Down one line
End | Line end
Enter | New line/line break
Home | Line start
Ins | Insert mode toggle on/off
Left | Left one character
PgDn | Page down
PgUp | Page up
Right | Right one character
Tab | Tab/indent Block indent (when lines selected)
Shift+Tab | Block unindent (when lines selected)
Up | Up one line
Shift+Del | Cut
Shift+Down | Select line down
Shift+End | Select to line end
Shift+Home | Select to line start
Shift+Ins | Paste
Shift+Left | Select character left
Shift+PgDn | Select page down
Shift+PgUp | Select page up
Shift+Right | Select character right
Shift+Tab | Tab/indent
Shift+Up | Select line up
Shift+Ctrl+0...9 | Set bookmark 0...9
Shift+Ctrl+Left | Select word left
Shift+Ctrl+Right | Select word right
Shift+Ctrl+PgDn | Select to page bottom
Shift+Ctrl+PgUp | Select to page top
Shift+Ctrl+Home | Select to top of file
Shift+Ctrl+End | Select to bottom of file
Shift+Ctrl+B | Match bracket
Shift+Ctrl+C | Column select mode
Shift+Ctrl+I | Block indent
Shift+Ctrl+L | Line select mode
Shift+Ctrl+N | Normal select mode
Shift+Ctrl+U | Block unindent
Shift+Ctrl+Y | Delete to end of line
Shift+Ctrl+Z | Redo
Shift+Ctrl+> | Extended auto tag complete (store)
Shift+Ctrl+< | Extended auto tag complete (close all)
Shift+Alt+BkSp | Redo
Ctrl+0...9 | Goto bookmark 0...9
Ctrl+BkSp | Delete word left
Ctrl+Down | Scroll down one line
Ctrl+End | Bottom of file
Ctrl+Home | Top of file
Ctrl+Ins | Copy
Ctrl+Left | Left one word
Ctrl+PgDn | Page bottom
Ctrl+PgUp | Page top
Ctrl+Right | Right one word
Ctrl+Up | Scroll up one line
Ctrl+A | Select all
Ctrl+C | Copy
Ctrl+M | New line/line break
Ctrl+N | Insert line
Ctrl+T | Delete word
Ctrl+V | Paste
Ctrl+X | Cut
Ctrl+Y | Delete line
Ctrl+Z | Undo
Alt+BkSp | Undo


Editor keys reference - by grouping

Group | Action | Key combination
Edit | Block indent | Shift+Ctrl+I Tab (when lines selected)
 | Block unindent | Shift+Ctrl+U Shift+Tab (when lines selected)
 | Delete character | Del
 | Delete character left | BkSp
 | Delete line | Ctrl+Y
 | Delete to end of line | Shift+Ctrl+Y
 | Delete word | Ctrl+T
 | Delete word left | Ctrl+BkSp
 | Insert line | Ctrl+N
 | New line/line break | Enter
 |  | Ctrl+M
 | Tab/indent | Tab
 |  | Shift+Tab
Navigation | Bottom of file | Ctrl+End
 | Down one line | Down
 | Goto bookmark/breakpoint 0...9 | Ctrl+0...9
 | Left one character | Left
 | Left one word | Ctrl+Left
 | Line end | End
 | Line start | Home
 | Page bottom | Ctrl+PgDn
 | Page down | PgDn
 | Page top | Ctrl+PgUp
 | Page up | PgUp
 | Right one character | Right
 | Right one word | Ctrl+Right
 | Scroll down one line | Ctrl+Down
 | Scroll up one line | Ctrl+Up
 | Top of file | Ctrl+Home
 | Up one line | Up
Selection | All | Ctrl+A
 | Character left | Shift+Left
 | Character right | Shift+Right
 | Column select mode | Shift+Ctrl+C
 | Line down | Shift+Down
 | Line select mode | Shift+Ctrl+L
 | Line up | Shift+Up
 | Normal select mode | Shift+Ctrl+N
 | Page down | Shift+PgDn
 | Page up | Shift+PgUp
 | To bottom of file | Shift+Ctrl+End
 | To line end | Shift+End
 | To line start | Shift+Home
 | To page bottom | Shift+Ctrl+PgDn
 | To page top | Shift+Ctrl+PgUp
 | To top of file | Shift+Ctrl+Home
 | Word left | Shift+Ctrl+Left
 | Word right | Shift+Ctrl+Right
Cut, Copy and Paste | Copy | Ctrl+Ins
 |  | Ctrl+C
 | Cut | Shift+Del
 |  | Ctrl+X
 | Paste | Shift+Ins
 |  | Ctrl+V
Bookmarks | Goto bookmark 0...9 | Ctrl+0...9
 | Set bookmark 0...9 | Shift+Ctrl+0...9
Special | Block indent | Shift+Ctrl+I
 | Block unindent | Shift+Ctrl+U
 | Column select mode | Shift+Ctrl+C
 | Extended auto tag complete (store) | Shift+Ctrl+>
 | Extended auto tag complete (close) | Ctrl+Shift+<
 | Insert mode toggle on/off | Ins
 | Line select mode | Shift+Ctrl+L
 | Match bracket | Shift+Ctrl+B
 | Normal select mode | Shift+Ctrl+N
 | Redo | Shift+Ctrl+Z
 |  | Shift+Alt+BkSp
 | Undo | Alt+BkSp
 |  | Ctrl+Z


Page Setup dialog

The page setup dialog is used to determine the source code printing page options. The page setup options are displayed on two tabs:-

Options & Margins - general page/printing options and page margins

Headers & Footers - header and footer text and appearance settings

The Printer Setup button at the bottom of the dialog allows you to set the current printer options (such as printer selection, page orientation etc.).

All page setup options are saved by Xselerator on exit and restored when Xselerator restarts (unless the Save settings on exit option is turned off in Environment Options).

Page setup options may also be saved as part of a project so that each time the project is loaded the page setup will be restored. To determine whether page setup options are saved and restored with a project see the Project Options dialog.


Options & Margins

Options & Margins tab

The options & margins tab of the page setup dialog allows you to control the overall code printing options and the page margins. To the right of the tab an explanatory diagram is shown indicating the various page margin settings.

Options:-

Option | When Checked/Changed
Syntax highlight print | Printed XML/XSL code is highlighted in bold, italic etc.
Use colors | Printed XML/XSL code is highlighted in color (the colors used are those specified in the Editor Options).
Wrap lines | Lines longer than allowed by the page width are wrapped onto another line.
Line numbers | Line numbers are printed for the XML/XSL code.
Line numbers in margins | Line numbers are printed in the margin (when this option is off the line numbers are printed within the text print area).

Margins:-

Option | When Checked/Changed
Units | Defines the units by which the margins are specified.
Top | Determines the space between the top of the page and top of the text print area.
Bottom | Determines the space between the bottom of the page and the bottom of the text print area.
Left | Determines the space between the left of the page and the left of the text print area.
Right | Determines the space between the right of the page and the right of the text print area.
Gutter | Determines an additional margin placed between the left of the page and the start of the left margin (this setting is used in conjunction with the Line numbers in margins option to ensure that line numbers do not print off of the page).
Header | Determines the distance between the top of the page and the bottom of the header area.
Footer | Determines the distance between the bottom of the page and the top of the footer area.
H/F Internal Margin | The H/F (Header/Footer) internal margin is the distance between:- • (for Header) the bottom of the header area and the last line of the header text. • (for Footer) the top of the footer area and the first line of the footer text.
Mirrored margins | The margins for odd and even numbered pages are mirrored - therefore on even numbered pages the left margin actually becomes the right margin. This option particularly useful where double-sided printing is to be used.

Font:-

Option | When Checked/Changed
Use default editor font | Uses the font specified by the Editor Options for printing.
Font | The font face name to be used for printing. You should choose a font that is monospaced.
Size | The font point size to be used for printing.


Headers & Footers

Headers & Footers tab

The headers & footers tab of the page setup dialog allows you to determine the text and appearance of the page headers and footers.

Header/Footer:-

Option | When Checked/Changed
Left | Enter the text that appears at the left of the header/footer.
Center | Enter the text that appears at the center of the header/footer.
Right | Enter the text that appears at the right of the header/footer.
Line below/above | A line is printed under (for header) or above (for footer) the text.
Box around | A box is printed around the header/footer text.
Line/Box color | Determines the line color of the line above/below and box.
Shade box | The background of the header/footer box is shaded.
Shade color | Determines the shade color of the box.
Mirror positions | When printing on double sided paper the left and right header/footer text is flipped for even numbered pages.

At the top of the headers & footers tab is shown a formatting toolbar - this toolbar is used when editing the header/footer text to control the text appearance and to insert special tokens for displaying page numbers, number of pages, title etc. The following table describes the use of each of the buttons on the formatting toolbar:-

Inserts the token $PAGENUM$ in the header/footer text to display the page number.

Inserts the token $PAGECOUNT$ in the header/footer text to display the total number of pages for the print.

Inserts the token $TIME$ in the header/footer text to display the time of the print.

Inserts the token $DATE$ in the header/footer text to display the date of the print.

Inserts the token $TITLE$ in the header/footer text to display the title of the file being printed (the title printed as the filename).

Sets the font (face, color, style etc.) for the current line of the header/footer text. Ctrl+F can also be used to set the font.

Sets the current line of the header/footer text as bold. Ctrl+B can also be used to set bold.

Sets the current line of the header/footer text as italic. Ctrl+I can also be used to set italic.

Sets the current line of the header/footer text as underline. Ctrl+U can also be used to set underline.

NOTE: When formatting text in the headers/footers the font style can only be set on a line basis - therefore assigning a font style to any portion of a line will apply that style to the entire line.


Print Preview window

The print preview window shows a preview of the code that is to be printed.

The print preview toolbar buttons perform the following actions:-

 | Go to the first page of the print.
 | Go to the previous page of the print.
 | Go to the next page of the print.
 | Go to the last page of the print.
Zoom | Set the zoom scale of the print preview. You can zoom in on the page by clicking the left mouse button on the preview area or zoom out by clicking the right mouse button.
 | Print the current preview contents.
 | Modify the page setup for the print - on accepting modifications to the page or printer setup the preview will reflect these changes.
 | Close the print preview window (without printing).


Input XML window

The Input XML window is where the input XML is edited and viewed. The input XML can be edited in source view mode but can be viewed in several modes:-

Source View - this enables you to view the input XML as source code and edit it;

Tree View - this shows the input XML as a node tree;

As XML - this shows the input rendered as XML in a browser - the same effect as loading an XML file into a browser.

The view mode can be selected by pressing the appropriate buttons on the Input XML window toolbar.

The XSL editor can be customised for display and behaviour characteristics using the Editor Options. The various key strokes and their associated actions are listed in the Editor keys Reference.

For instructions on how to dock and un-dock the Input XML window please refer to the Customizing Xselerator - IDE Layout section this help.

Large Input XML Files

Although the Xselerator is able to load and edit large XML files - we do not recommend Xselerator as a tool for editing large XML files. We always recommend that the XML files you use to develop your XSLT against are sample documents - containing a cut down version of the final input XML. Remember also that Xselerator is not a final production transformation tool - even though it is able to test against your production environment transformation engine.

Remember also that it is not generally recommended practice to perform XSLT transformations against large XML documents - a SAX parser is better designed to meet this requirement. It is recommended that XSLT not be used for transformations on XML files in excess of 10MB - and we recommend that, wherever possible, your sample XML documents used in Xselerator do not exceed 2MB.


Input XML toolbar

Sets the Input XML view mode to text (source edit) mode. The input XML source is highlighted according to the settings defined in the Editor Options.

Sets the Input XML view mode to tree view. Tree views can only be used to display XML that is well-formed - non well-formed code causes the tree view to display a single error node. Highlighting options for the tree view mode are set in the Editor Options.

Sets the Input XML view mode to XML browse. This view mode displays the XML as a browser displays it.

Creates a new, untitled XML document in the Input XML window.
If the current XML document is changed but unsaved the system asks to confirm if changes are to be lost or the existing XML document is to be saved.

Opens a different XML document in the Input XML window. The small down arrow on this button shows a menu list containing recently opened XML files. Recent XML files can be limited and cleared in the Environment Options. If the currently loaded XSL stylesheet has previously been associated with an XML file then this associated file is also displayed in the drop down menu of files.
If the current XML document is changed but unsaved the system asks to confirm if changes are to be lost or the existing XML document is to be saved.

Downloads an XML file from a http URL and places the XML into the Input XML window.
If the current XML document is changed but unsaved the system asks to confirm if changes are to be lost or the existing XML document is to be saved.

Saves the currently loaded XML document.
This button is disabled when the current XML file is unchanged or when the current input XML document has not yet been assigned a file name.

Saves the currently loaded XML document as a new file.

Opens the extended auto complete tags window or use the drop-down menu to select the un-closed elements you want to close.

This button is disabled when there are no auto close tags in the buffer.

Pressing this button checks the well-formedness of the XML in the XML window.

Pressing this button validates the XML in the XML window according to any DTD or Schemas (XSD or XDR) specified in the XML document.

Perform a tidy on the current Input XML. The tidy is performed according to the editor settings for tab character and tab size.

NOTE: The XML browse mode requires Microsoft IE5.x to be installed on the workstation.


Input XML statusbar

1) Shows the position (line:column) within the source XML code (only displayed in source view mode)

2) Shows whether the current XML document has been modified. When a read-only or downloaded XML document is loaded this panel will display Read-only (indicating that the stylesheet may not be edited)

3) Shows the current insert status of the XML editor - Insert or Overwrite.

4) Shows the encoding of the current XML document. If this panel displays Unknown then the encoding is as yet unknown and will be determined when the XML document is saved. For further information on encodings supported please refere to the Encodings topic in this help file.

5) Shows the full path and file name of the currently loaded XML document. If the XML document is new and, as yet, unsaved this panel will display (Untitled).


XML editor context menu

The XML editor context menu can be accessed by right-clicking on the XML editor or by pressing the [image] key. Some of the menu options below will only appear when the context menu is displayed by right-clicking in the XML editor gutter.

For additional information on breakpoints please refer to Using Breakpoints.

Menu Item

Action

Toggle Breakpoint(s)

Sets a new breakpoint on the current line or, if breakpoint(s) already exist on the current line, clears all breakpoints on the current line.

When the cursor is set at a specific position in the editor when the context menu is displayed the breakpoint will be set at that exact point. However, if the context menu is displayed by right-clicking on the editor gutter the breakpoint will be set at the first possible breakable point on the current line.

Set Additional Breakpoint

Sets an additional breakpoint at the current cursor position.

Note: This option is only visible when there is already breakpoint(s) on the current line.

Breakpoint Enabled

Toggles whether the breakpoint on the current line is enabled or disabled.

Note: This option is only visible when the context menu is displayed by right-clicking on the editor gutter.

Breakpoint Condition...

Shows whether the breakpoint on the current line has a condition set. Select this option to add, modify or remove the condition from the breakpoint. On selecting this option the Breakpoint Condition dialog is displayed.

Note: This option is only visible when the context menu is displayed by right-clicking on the editor gutter.

Set Bookmark

Sets a bookmark at the current cursor position. The next available bookmark number (0..9) is set. Once set, bookmarks can be navigated to by pressing Ctrl+0..9.

Note: This option is only visible when there is an available unused bookmark.

Open Stylesheet

Opens the stylesheet defined by the href attribute of a <?xml-stylesheet?> processing instruction.

Note: This option is only visible when the cursor is positioned on a <?xml-stylesheet?> processing instruction.

Undo

Redo the last undone change in the XML editor.

Redo

Redo the last undone change in the XML editor.

Cut

Cut the currently selected text in the XML editor.

Copy

Copy the currently selected text in the XML editor.

Paste

Paste text in the clipboard to the XML editor.

Select All

Marks as selected all text in the XML editor.

Copy as RTF

Copy the currently selected text in the XML editor as RTF (Rich Text Format) into the clipboard buffer. This copied RTF can then be pasted into word processor documents, RTF files and newsgroup postings as syntax highlighted code.

Copy as HTML (code)

Copy the currently selected text in the XML editor as HTML into the clipboard buffer. This copied HTML can then be pasted into word processor documents, HTML editors (such as Microsoft's FrontPage) and newsgroup postings as syntax highlighted code.

The code version of HTML is used to preserve indentation in the copied HTML by placing the generated HTML within <PRE> tags.

Copy as HTML (presentation)

Copy the currently selected text in the XML editor as HTML into the clipboard buffer. This copied HTML can then be pasted into word processor documents, HTML editors (such as Microsoft's FrontPage) and newsgroup postings as syntax highlighted code.

Find

Search for text in the XML editor.

Find next

Find again search/replace text in the XML editor.

Replace

Replace text in the XML editor.

Read Only

Denotes whether the currently loaded XML document was loaded from a read-only file. Select this option to alternate the read-only state of the document in the editor.

Print preview

Shows a preview of the print in the Print Preview window.

Print

Prints the contents of the XML editor.


Open Input XML

The Open Input XML dialog is much the same as the standard open dialog used in other windows applications - with the exception of the additional Encoding selection. This encoding selection allows you to instruct Xselerator to assume that the XML file about to be opened has been stored with a specific encoding (e.g. UTF-8, UTF-16 etc.). Normally you do not need to select this option, leaving to Default will alow Xselerator to automatically detect the encoding used for the file. Under certain circumstances it may be advisable to use this option - for example, if an XML document file is known to be stored as UTF-8 but has no BOM (Byte Order Marker) and has no encoding specified in the XML prolog.

For further information on encodings and BOMs (Byte Order Markers) please refer to the Encodings section of this help.


Save Input XML as

The Save Input XML as dialog is much the same as the standard save as dialog used in other windows applications - with the exception of the additional Encoding selection and BOM Marker option. This encoding selection allows you to instruct Xselerator which encoding to use when saving the file and, if saving as UTF-8, whether a BOM (Byte Order Marker) is to be included in the file.

If the Encoding selection is left as Default then Xselerator will attempt to determine the correct encoding by the following algorithm:-

1) Detection of the encoding specified in the XML prolog

Xselerator examines the encoding specified in the XML prolog - if an encoding is specified (and is recognised by Xselerator) then this encoding is used.

2) Assumption of UTF-8 (the XML standard default)

If no encoding is specified in the XML prolog then Xselerator assumes UTF-8 (the standard default encoding for XML files).

For further information on encodings and BOMs (Byte Order Markers) please refer to the Encodings section of this help.


Input XSL window

The Input XSL window is where the input XSL is edited and viewed. The input XSL can be edited in source view mode but can be viewed in several modes:-

Source View - this enables you to view the input XSL as source code and edit it;

Tree View - this shows the input XSL as a node tree;

As XSL - this shows the input rendered as XSL in a browser - the same effect as loading an XML file into a browser.

The view mode can be selected by pressing the appropriate buttons on the Input XSL window toolbar.

The various other buttons on the Input XSL window toolbar.allow you to work with the XSL by using Snippets and the insert XSL elements using the Interactive XSL dialog.

The XSL editor can be customised for display and behaviour characteristics using the Editor Options. The various key strokes and their associated actions are listed in the Editor keys Reference.

For instructions on how to dock and un-dock the Input XML window please refer to the Customizing Xselerator - IDE Layout section this help.


Input XSL toolbar

Sets the Input XSL view mode to text (source edit) mode. The input XSL source is highlighted according to the settings defined in the Editor Options.

Sets the Input XSL view mode to tree view. Tree views can only be used to display XSL that is well-formed XML - non well-formed code causes the tree view to display a single error node. Highlighting options for the tree view mode are set in the Editor Options.

Sets the Input XSL view mode to XML browse. This view mode displays the XSL as a browser displays it.

Creates a new, untitled XSL stylesheet in the Input XSL window. The small down arrow on this button allows new stylesheets to be created from a list of pre-defined stylesheets:-
• Stylesheet (XSLT) - creates a new basic stylesheet with the namespace
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
• Stylesheet (MS XSLT) - creates a new basic stylesheet with the namespaces
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" and
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
• Stylesheet (XSL WD) - creates a new basic stylesheet with the namespace
xmlns:xsl="http://www.w3.org/TR/WD-xsl"
If the current XSL stylesheet is changed but unsaved the system asks to confirm if changes are to be lost or the existing XSL stylesheet is to be saved.

The drop-down menu for this button will also include any pre-defined template stylesheets you have previously setup. Selecting one of these template stylesheets will create a new stylesheet from that selected template.

To create a new template stylesheet from the currently selected stylesheet press the Save as template stylesheet... option

Opens a different XSL stylesheet in the Input XSL window. The small down arrow on this button shows a menu list containing recently opened XSL files. Recent XSL files can be limited and cleared in the Environment Options.
If the current XSL stylesheet is changed but unsaved the system asks to confirm if changes are to be lost or the existing XSL stylesheet is to be saved.

Downloads an XSL stylesheet from a http URL and places the XSL into the Input XSL window.
If the current XSL stylesheet is changed but unsaved the system asks to confirm if changes are to be lost or the existing XSL stylesheet is to be saved.

Saves the currently loaded XSL stylesheet.
This button is disabled when the current XSL stylesheet is unchanged or when the current input XSL stylesheet has not yet been assigned a file name.

Saves the currently loaded XSL stylesheet as a new file.

Closes the current XSL stylesheet. If there is only one stylesheet currently open then it is closed and a new, empty stylesheet edit is created.

Closes all currently opened stylesheets.

Associates the currently loaded Input XML document with the current Input XSL document. When this button is shown as down the two files are already associated - pressing the button clears the association. When this button is up then no current association exists between the two files - pressing the button associates them.
Associations between Input XSL and XML files are remembered by Xselerator - when an XSL stylesheet is loaded that was previously associated with an XML file then that associated XML file is also loaded (when the Auto load associated XML file option is selected in Environment Options).

These two buttons toggle the currently selected XSL language between XSL (Working Draft) and XSL (Transform - or XSLT). Regardless of the currently loaded stylesheets xmlns:xsl namespace the language can be set using these buttons - the source XSL code in the Input XSL editor being highlighted accordingly. The selected XSL language also controls the elements and attributes suggested in the XSL Intuitive drop-downs and the elements shown in the XSL Elements menu list (see below).
If the Auto select XSL language option is checked in the Editor Options these buttons are automatically updated when a new stylesheet is created or a stylesheet is loaded.

Pressing this button shows the XSL Element dialog and allows XSL elements to be edited within that dialog prior to being inserted into the stylesheet at the current cursor position.
The small down arrow on this button shows a menu of XSL elements valid for the currently selected XSL language. When an element is selected from this menu it is inserted into the XSL stylesheet at the current cursor position. When the element is inserted XSL attributes are also inserted according to the current settings XSL menu - either all attributes (optional) or only the mandatory attributes.

Pressing this button shows the Snippet Library dialog with a list of snippets that can be selected and inserted into the XSL at the current cursor position. If a snippet library is not currently loaded then pressing this button will display the Snippet Library Manager which allows a snippet library to be loaded.
The small down arrow on this button shows a menu of snippets that have been denoted as favourites (up to 36 snippets can be marked as favourites). Also on this menu is an option to allow the Snippet Library Manager to be displayed - allowing a new snippet library to be loaded or snippets in the currently library to be edited, created, deleted and marked as favourites.

Opens the extended auto complete tags window or use the drop-down menu to select the un-closed elements you want to close.

This button is disabled when there are no auto close tags in the buffer.

Opens or shows the Template Navigator. The Template Navigator shows a summarised list of the templates and import/includes within the current stylesheet and can be used to navigate around the stylesheet by template.

Pressing this button shows the XSL Table Wizard - which performs a step-by-step creation of XSL code required to build HTML tables from the Input XML.

Pressing this button show the XSL Select Wizard - which performs a step-by-step creation of the XSL code required to build HTML selects/listboxes from the Input XML.

Pressing this button shows the XSL Distinct/Grouping Wizard - which performs a step-by-step creation of the XSLT code required to build distinct/grouping selections from the Input XML.

Pressing this button checks the well-formedness of the XML in the XSL window.

Perform a tidy on the current Input XSL. The tidy is performed according to the editor settings for tab character and tab size.

NOTE: The XML browse mode requires Microsoft IE5.x to be installed on the workstation.


Input XSL statusbar

1) XSL Stylesheet select. Multiple stylesheets can be opened in Xselerator simultaneously - use this tab bar to select the stylesheet to edit, transform or debug. The icons that may appear on each tab indicate the following:-
the stylesheet has been modified but unsaved;
this stylesheet is the stylesheet currently being debugged (only visible when debugging active)

2) Shows the position (line:column) within the source XSL code (only displayed in source view mode)

3) Shows whether the currently selected stylesheet has been modified. When a read-only or downloaded stylesheet is selected this panel will display Read-only (indicating that the stylesheet may not be edited)

4) Shows the current insert status of the current editor - Insert or Overwrite.

5) Shows the encoding of the currently selected stylesheet. If this panel displays Unknown then the encoding is as yet unknown and will be determined when the XML document is saved. For further information on encodings supported please refere to the Encodings topic in this help file.

6) Shows the full path and file name of the currently selected stylesheet. If the stylesheet is new and, as yet, unsaved this panel will display (Untitled).


XSL editor context menu

The XSL editor context menu can be accessed by right-clicking on the XSL editor or by pressing the [image] key. Some of the menu options below will only appear when the context menu is displayed by right-clicking in the XSL editor gutter.

For additional information on breakpoints please refer to Using Breakpoints.

Menu Item

Action

Toggle Breakpoint(s)

Sets a new breakpoint on the current line or, if breakpoint(s) already exist on the current line, clears all breakpoints on the current line.

When the cursor is set at a specific position in the editor when the context menu is displayed the breakpoint will be set at that exact point. However, if the context menu is displayed by right-clicking on the editor gutter the breakpoint will be set at the first possible breakable point on the current line.

Set Additional Breakpoint

Sets an additional breakpoint at the current cursor position.

Note: This option is only visible when there is already breakpoint(s) on the current line.

Breakpoint Enabled

Toggles whether the breakpoint on the current line is enabled or disabled.

Note: This option is only visible when the context menu is displayed by right-clicking on the editor gutter.

Breakpoint Condition...

Shows whether the breakpoint on the current line has a condition set. Select this option to add, modify or remove the condition from the breakpoint. On selecting this option the Breakpoint Condition dialog is displayed.

Note: This option is only visible when the context menu is displayed by right-clicking on the editor gutter.

Set Bookmark

Sets a bookmark at the current cursor position. The next available bookmark number (0..9) is set. Once set, bookmarks can be navigated to by pressing Ctrl+0..9.

Note: This option is only visible when there is an available unused bookmark.

Open file at cursor

Opens the stylesheet defined by the href attribute of the <xsl:import> or <xsl:include> at the current cursor position.

Note: This option is only visible when the cursor is positioned in the value of a href attribute of an <xsl:import> or <xsl:include> element.

Goto Template

Positions the cursor at the place where the called named template at the current cursor position is defined.

Note: This option is only visible when the cursor is positioned in the value of a name attribute of an <xsl:call-template> element.

Close

Closes this stylesheet.

Undo

Redo the last undone change in the XSL editor.

Redo

Redo the last undone change in the XSL editor.

Cut

Cut the currently selected text in the XSL editor.

Copy

Copy the currently selected text in the XSL editor.

Paste

Paste text in the clipboard to the XSL editor.

Select All

Marks as selected all text in the XSL editor.

Copy as RTF

Copy the currently selected text in the XSL editor as RTF (Rich Text Format) into the clipboard buffer. This copied RTF can then be pasted into word processor documents, RTF files and newsgroup postings as syntax highlighted code.

Copy as HTML (code)

Copy the currently selected text in the XSL editor as HTML into the clipboard buffer. This copied HTML can then be pasted into word processor documents, HTML editors (such as Microsoft's FrontPage) and newsgroup postings as syntax highlighted code.

The code version of HTML is used to preserve indentation in the copied HTML by placing the generated HTML within <PRE> tags.

Copy as HTML (presentation)

Copy the currently selected text in the XSL editor as HTML into the clipboard buffer. This copied HTML can then be pasted into word processor documents, HTML editors (such as Microsoft's FrontPage) and newsgroup postings as syntax highlighted code.

Find

Search for text in the XSL editor.

Find next

Find again search/replace text in the XSL editor.

Replace

Replace text in the XSL editor.

Read Only

Denotes whether the currently loaded XSL stylesheet was loaded from a read-only file. Select this option to alternate the read-only state of the stylesheet in the editor.

Print preview

Shows a preview of the print in the Print Preview window.

Print

Prints the contents of the XSL editor.


Open Input XSL

The Open Input XSL dialog is much the same as the standard open dialog used in other windows applications - with the exception of the additional Encoding selection. This encoding selection allows you to instruct Xselerator to assume that the XSL file about to be opened has been stored with a specific encoding (e.g. UTF-8, UTF-16 etc.). Normally you do not need to select this option, leaving to Default will alow Xselerator to automatically detect the encoding used for the file. Under certain circumstances it may be advisable to use this option - for example, if an XSL stylesheet file is known to be stored as UTF-8 but has no BOM (Byte Order Marker) and has no encoding specified in the XML prolog.

For further information on UTF encodings and BOMs (Byte Order Markers) please refer to the Encodings section of this help.


Save Input XSL as

The Save Input XSL as dialog is much the same as the standard save as dialog used in other windows applications - with the exception of the additional Encoding selection and BOM Marker option. This encoding selection allows you to instruct Xselerator which encoding to use when saving the file and, if saving as UTF-8, whether a BOM (Byte Order Marker) is to be included in the file.

If the Encoding selection is left as Default then Xselerator will attempt to determine the correct encoding by the following algorithm:-

1) Detection of the encoding specified in the XML prolog

Xselerator examines the encoding specified in the XML prolog - if an encoding is specified (and is recognised by Xselerator) then this encoding is used.

2) Assumption of UTF-8 (the XML standard default)

If no encoding is specified in the XML prolog then Xselerator assumes UTF-8 (the standard default encoding for XML files).

For further information on encodings and BOMs (Byte Order Markers) please refer to the Encodings section of this help.


Save As Template Stylesheet

This option can be selected from the New [image] button drop-down menu on the XSL window toolbar.

On selecting this option the current stylesheet can be saved as a template. Once created, template stylesheets will appear in new drop-down menu of the XSL window toolbar. Template stylesheets are a way of saving for re-use stylesheets that already have some basic elements. For example, if you are creating many stylesheets that generate HTML you may wish to create a template stylesheet that saves you having to put in the basic HTML tags, e.g.

<?xml version="1.0"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="html"/>

<xsl:template match="/">

<html>

<head>

</head>

<body>

</body>

</html>

</xsl:template>

</xsl:stylesheet>

On selecting this option the New Template Stylesheet dialog will appear. Enter the descriptive name of the new template stylesheet in the Description entry. Then specify where the template stylesheet is to be stored by pressing the button in the Filename entry. Once you have specified the description and file press the OK button - the template stylesheet will now appear with the specified description in the drop-down menu from the New button on the XSL window toolbar.


Snippets Library overview

The snippets library feature of Xselerator allows you to store a repository of commonly used XSLT code snippets. These snippets of XSLT code can be edited using the Snippet Library Manager and then, when required, dropped into your XSLT code from the snippets drop down menu (from the Input XSL window toolbar) or from the Snippet Library dialog.

You can configure the snippets so that the more commonly used ones appear in the drop down menu from the snippets button of the Input XSL window toolbar. These commonly used snippets are referred to as 'favourite'. Snippets that are not marked as favourite are still accessible at any time using the Snippet Library dialog.

A snippet can consist of between 1 and 4 fragments. These fragments determine where in the XSLT code the snippet XSLT code will be placed. The fragments that can form a snippet are as follows:-

Main
This fragment of the snippet, if used, is inserted into your current XSLT code at the current cursor position. This fragment can be, like the other fragments, many lines of XSLT code in which case there is an option to allow the current indentation to be maintained when inserting this fragment.

Stylesheet
This fragment of the snippet, if used, is inserted into the current stylesheet at the top of the stylesheet - immediately after the <xsl:stylesheet> element. This fragment is primarily intended for holding commonly used <xsl:key> elements and globally declared <xsl:param> and <xsl:variable> elements.

Template
This fragment of the snippet, if used, is inserted into the current template (according to the current cursor position) at the top of the template. This fragment is primarily intended for holding commonly used template <xsl:param> and <xsl:variable> elements.

New Template
This fragment of the snippet, if used, is inserted into the current stylesheet at the bottom of the stylesheet - immediately after the last detected </xsl:template> closing tag. This fragment is primarily intended for holding commonly used named <xsl:template> elements.

Each snippet can be a combination of any of the above four fragments. For example, if you set up a commonly used used XPath expression that uses the key() function you may want to also define in that snippet the <xsl:key> element that declares the key. In this case you would use both the Main and Stylesheet fragments to define the snippet.

The snippet library is stored as an XML file. You can load different libraries and save the current library as a new one using the Snippet Library Manager. The currently loaded snippet library is always re-loaded when Xselerator restarts.


Snippet Library

The snippet library dialog, available by pressing the Snippet Library button the Input XSL window toolbar, is used to select a snippet for insertion into the current XSL code. Unlike the toolbar drop down menu which only allows you to select the snippets marked as favourites, the Snippet Library dialog shows all the snippets in the currently loaded library - along with a description of each snippet.

To select a snippet for insertion highlight the required snippet and press the OK button. A snippet can also be added by double-clicking on the required snippet.

When a snippet is added the various fragments (see Snippet Library Overview) are inserted into your XSL code at the appropriate position. After a snippet is been inserted you can use the undo feature of the editor as normal to remove the various fragments of the snippet just inserted.

The Snippet Library dialog cannot be used to modify, add or delete snippets in the library - this can be done from the Snippet Library Manager (which can be activated by selecting the Snippet Library Manager option from the snippet library toolbar button on the Input XSL window toolbar).


Snippet Library Manager

The Snippet Library Manager is used to manage the currently loaded Snippet Library - allowing you to add, modify and delete snippets as well as load and save the current snippet library (note that the currently loaded snippet library is always saved when Xselerator shuts down). The Snippet Library Manager is displayed by selecting the Snippet Library Manager option from the drop down menu of the Snippet Library button on the Input XSL window toolbar.

The Snippet Library Manager is divided into two tabs:-

Snippets tab - allows you to manipulate the snippets in the currently loaded snippet library

Library tab - allows you to save the current snippet library as a new library and load alternative snippet libraries.

When you have finsihed manipulating the current snippet library or changed the current snippet library press the OK button to save the changes in Xselerator, otherwise press the Cancel button to abandon all changes made in the Snippet Library Manager (even edits to multiple snippets within the current library can be abandoned).


Snippet Library Manager - Snippets tab

The Snippets list on the left hand side of the dialog shows the names of the snippets in the currently loaded snippet library. The icon for each snippet denotes if it is a [image] favourite or a [image] normal snippet. Favourite snippets are those which are commonly used and are listed on the drop down menu of the Snippets button on the Input XSL window toolbar. Each snippet can be switched between being a favourite or normal snippet by checking and un-checking the Favourite checkbox in this dialog (all other changes to a snippet are made by using the Modify button).

The Move Up and Move Down buttons allow you to change the order in which the snippets appear in the list and, subsequently, the order in which the favourites appear in the drop down menu.

As each snippet is selected the Description display is updated. To modify this description press the Modify button.

To add a new snippet to the current library press the Add button. To modify the currently selected snippet press the Modify button. Both the add and modify buttons display the Add/Modify Snippet dialog.

To delete the currently highlighted snippet press the Delete button.


Add/Modify Snippet

The Add/Modify Snippet dialog allows you to add or modify snippets in the current Snippet Library. This dialog is accessed by pressing the Add or Modify button from the Snippet Library Manager dialog.

Enter the Snippet Name by which you want your snippet referred to (this is also the text used when snippets are displayed in the snippet drop down menu on the Input XSL window toolbar). Check the Favourite option if you want this snippet to appear in the snippet drop down menu on the Input XSL window toolbar. Enter the Description of the snippet - this should be a short narrative describing the use or meaning of your snippet (this description is not shown on the snippet drop down menu but is visible when selecting snippets in the Snippet Library dialog).

Now you can add or modify the fragments that make up the snippet. A snippet can consist of between 1 and 4 fragments. These fragments determine where in the XSLT code the snippet XSLT code will be placed. The fragments that can form a snippet are as follows:-

Main
This fragment of the snippet, if used, is inserted into your current XSLT code at the current cursor position. This fragment can be, like the other fragments, many lines of XSLT code in which case there is an option to allow the current indentation to be maintained when inserting this fragment.

Stylesheet
This fragment of the snippet, if used, is inserted into the current stylesheet at the top of the stylesheet - immediately after the <xsl:stylesheet> element. This fragment is primarily intended for holding commonly used <xsl:key> elements and globally declared <xsl:param> and <xsl:variable> elements.

Template
This fragment of the snippet, if used, is inserted into the current template (according to the current cursor position) at the top of the template. This fragment is primarily intended for holding commonly used template <xsl:param> and <xsl:variable> elements.

New Template
This fragment of the snippet, if used, is inserted into the current stylesheet at the bottom of the stylesheet - immediately after the last detected </xsl:template> closing tag. This fragment is primarily intended for holding commonly used named <xsl:template> elements.

Each snippet can be a combination of any of the above four fragments. To edit a particular fragment press the appropriate fragment button and enter the XSLT code for that fragment into the editor. The check box option on each fragment button indicates whether this fragment is to be used - be sure to check thes on for all fragments you have entered prior to saving the snippet (otherwise the fragments may be lost).

For the Main fragment check the Maintain Indentation option if, when inserting the main fragment, you want the lines of the fragment to obey the current indentation at the position where the snippet is being added. For main fragments that are simple pieces of text (such as text to be placed in attribute values) this option should be un-checked.

Within the Main fragment you may also specify where the cursor position should be placed after the snippet has been inserted. To indicate where the cursor should be placed insert ^^ at the appropriate position. You can also place a further ^^ into the fragment to denote that the text within the pair of ^^ markers should be selected ready for overtyping. Examples:-

<xsl:variable name="^^" select="*"/>

will insert the fragment with the cursor position in the name quotes (the ^^ is automatically removed)

<xsl:variable name="^^type-name-here^^" select="*"/>

will insert the fragment with the cursor positioned in the name quotes with the text type-name-here selected ready for overtyping (the ^^ markers are automatically removed)

Once you have completed editing your new/existing snippet press the OK button to save it into the current snippet library. Press the Cancel button if you wish to abandon the changes or abort the addition of a new snippet.


Snippet Library Manager - Library tab

The Library display shows the path and filename of the currently loaded snippet library. Press the Load Library [image] button to load a new library as the current snippet library.

Press the Save Library as [image] button to save the current snippet library as a new snippet library containing the same snippets.


BookItem Wizards

XSL/XSLT Wizards

The XSL editor has wizards for building XSL/XSLT code for performing some common, but sometimes complex, tasks. The following wizards are available:-

XSL Table Wizard - for generating XSL/XSLT code for producing HTML tables.

XSL Select Wizard - for generating XSL/XSLT code for producing HTML selects/listboxes.

XSLT Distinct/Grouping Wizard - for generating XSLT code for producing select distinct/grouping expressions.

Each wizard guides you through, step by step, the building of the required XSL/XSLT code to perform the given task. As each option or setting in the wizard is selected the wizard shows the effect on the required XSL/XSLT code in a code preview window. On completing the steps of a wizard the built code is inserted into the XSL code editor at the current cursor position.


Table Wizard

XSL Table Wizard

The XSL Table Wizard is a step-by-step guide to building the required XSL code for outputting HTML tables. The wizard steps are as follows (with full descriptions below):-

Step 1 - define the properties for the table and row

Step 2 - define the node that is to be assumed as the context node (optional)

Step 3 - define the repeating node to base the table rows on

Step 4 - define the column contents and properties

At the bottom of the dialog is the Show Preview option - check this on to show the XSL preview window. This preview window shows the XSL code being built/altered as each step and option of the wizard is set. When stepping backwards through the wizard you may find that the generated code in the preview is decreased - this does not mean that options set in latter steps have been lost and as you step forwards again the code will be regenerated correctly.

Use the Back and Next buttons to go through the steps, press the Finish button (when enabled at the last step) to insert the generated XSL code into the XSL code editor at the current position. When the generated XSL code is inserted into the code editor Xselerator will add the appropriate indentation for the current position.

Step 1

Table Properties define the normal HTML attributes added to the <TABLE> element of the generated code.

Row Properties define the normal HTML attributes added to the <TR> element of the generated code. In addition to the standard HTML attribute options the wizard offers two other options:-

Alternate

Setting this option on allows the wizard to generate the necessary XSLT code for outputting alternating row colours (this option is only enabled when the current language is XSLT). Having selected this option you may set the required colour setting for the alternate rows.

Include Header Row

Setting this option on instructs the wizard to generate a header row. The contents of the header columns are defined in step 4.

Step 2

This step allows you to determine the node that is assumed to be the context node at the time when the generated XSL code is executed. Select the None option if you want the XPath expression for selecting rows to be an absolute path from the XML root. Alternatively, set the Select context node option and select a node from the tree view which will be assumed to be the current context node for the generated XSL.

Step 3

This step allows you to define the expression or node that represents the repeating node on which the table rows are to be based.

Select the Expression option if you wish to enter a XPath/XSL Pattern expression that selects the repeating node. The drop-down edit can be used to enter a new expression or use a previously tested expression from the XPath Query Analyser. The Query Builder button next to the drop-down edit calls the query builder dialog and allows queries to be built interactively from the various XPath operators and functions (this button is only enabled when the current language is set to XSLT). This expression must be valid before proceeding to the next step of the wizard.

Use the Select repeating node option to select the repeating node from the tree view representation of the currently loaded XML. When selecting the repeating node from the tree view you only need to pick one node that represents an example of the repeating node - the XPath/XSL Pattern expression that the wizard generates will select all like nodes (i.e. with the same name and parent structure).

Step 4

Finally, define the column properties and settings for the table. At the top is a list of the currently defined columns - the wizard automatically populates this list when you first enter this step. The automatic entries are taken from all of the immediate child elements and attributes of the selected repeating node.

The list is shown in the order in which columns will appear in the table - use the Move Up and Move Down buttons to alter this order. Use the Add and Delete buttons to add new columns or remove existing columns.

The content of a column can be amended by selecting the required column in the list. On selecting a column you may edit the expression or text value for the column. If the column has been defined as having an expression content (see below) the edit can be freely amended or selected from a drop down-list of immediate child elements and attributes of the repeating row node - also the expression can be built using the Query Builder button.

As each column is selected in the list the Column Properties display at the bottom is updated with the settings for that selected column. The column properties define the normal HTML attributes added to each <TD> element of the generated code. In addition to the HTML attributes for the columns the wizard also offers the following options:-

Content

Define whether the column cell is to contain an XPath/XSL Pattern Expression or a literal Text Value.

Header

Define the literal text to be placed in the header <TH> cell for this column. This option is only enabled when the Include Header Row option was selected in step 1.


Select Wizard

XSL Select Wizard

The XSL Select Wizard is a step-by-step guide to building the required XSL code for outputting HTML selects (drop-downs/listboxes). The wizard steps are as follows (with full descriptions below):-

Step 1 - define the properties for the select

Step 2 - determine whether the XSL code is to be generated as a separate template (optional)

Step 3 - define the node that is to be assumed as the context node (optional)

Step 4 - define the repeating node to base the select options on

Step 5 - define the expressions used to populate the options

At the bottom of the dialog is the Show Preview option - check this on to show the XSL preview window. This preview window shows the XSL code being built/altered as each step and option of the wizard is set. When stepping backwards through the wizard you may find that the generated code in the preview is decreased - this does not mean that options set in latter steps have been lost and as you step forwards again the code will be regenerated correctly.

Use the Back and Next buttons to go through the steps, press the Finish button (when enabled at the last step) to insert the generated XSL code into the XSL code editor at the current position. When the generated XSL code is inserted into the code editor Xselerator will add the appropriate indentation for the current position.

Step 1

Specify the Name that will be used for the HTML <SELECT> element. Determine the select type required, either Dropdown or Listbox - when Dropdown is selected the SIZE attribute of the set as 1 otherwise you may define the listbox size using the entry.

Check the Default option required option if you want a default option (not based on the repeating XML node) to be inserted into the XSL code. When this option is set you may specify a Default Option Value and Default Option Text - which are used in the default <OPTION> element.

Step 2

Determine whether the XSL code is to be built as a separate XSL template. When this option is set to Yes you must enter a Template Name.

If you choose to create the XSL code as a separate template a parameter may be passed to the template to indicate the Selected Item. Setting this option causes an <xsl:param name="selected-option-value"> to be inserted into the built XSL code. This parameter is then used by the XSL code to determine the currently selected item in the select. The default value for this parameter may be specified using the Default Value entry.

Step 3

This step allows you to determine the node that is assumed to be the context node at the time when the generated XSL code is executed. Select the None option if you want the XPath expression for selecting options to be an absolute path from the XML root. Alternatively, set the Select context node option and select a node from the tree view which will be assumed to be the current context node for the generated XSL.

Step 4

This step allows you to define the expression or node that represents the repeating node on which the select options are to be based.

Select the Expression option if you wish to enter a XPath/XSL Pattern expression that selects the repeating node. The drop-down edit can be used to enter a new expression or use a previously tested expression from the XPath Query Analyser. The Query Builder button next to the drop-down edit calls the query builder dialog and allows queries to be built interactively from the various XPath operators and functions (this button is only enabled when the current language is set to XSLT). This expression must be valid before proceeding to the next step of the wizard.

Use the Select repeating node option to select the repeating node from the tree view representation of the currently loaded XML. When selecting the repeating node from the tree view you only need to pick one node that represents an example of the repeating node - the XPath/XSL Pattern expression that the wizard generates will select all like nodes (i.e. with the same name and parent structure).

Step 5

Finally, specify the Value Expression and Text Expression that is used by the generated XSL code to fill in the select <OPTION> elements. These XPath/XSL Pattern expressions should be relative to the selected repeating node. Use the drop-downs for these entries to selected a previously tested expression from the XPath Query Analyser or use the Query Builder button to build a new XPath expression.


Distinct Wizard

XSLT Distinct/Grouping Wizard

The XSLT Distinct/Grouping Wizard is a step-by-step guide to building the required XSLT code for performing select distinct/grouping operations. The wizard steps are as follows (with full descriptions below):-

Step 1 - define the node that is to be assumed as the context node (optional)

Step 2 - define the repeating node from which distinct values are to be listed

Step 3 - define the distinct expression and grouping technique

At the bottom of the dialog is the Show Preview option - check this on to show the XSL preview window. This preview window shows the XSL code being built/altered as each step and option of the wizard is set. When stepping backwards through the wizard you may find that the generated code in the preview is decreased - this does not mean that options set in latter steps have been lost and as you step forwards again the code will be regenerated correctly.

Use the Back and Next buttons to go through the steps, press the Finish button (when enabled at the last step) to insert the generated XSLT code into the XSL code editor at the current position. When the generated XSL code is inserted into the code editor Xselerator will add the appropriate indentation for the current position. This wizard generates two sections of XSLT code, an <xsl:key> element which is placed at the top of the current stylesheet and a main portion of XSLT code which is inserted at the current position in the XSL editor.

Step 1

This step allows you to determine the node that is assumed to be the context node at the time when the generated XSLT code is executed. Select the None option if you want the XPath expression for selecting nodes to be an absolute path from the XML root. Alternatively, set the Select context node option and select a node from the tree view which will be assumed to be the current context node for the generated XSL.

Step 2

Select the repeating node from the tree view to determine the nodes from which distinct values will be selected. You only need to pick one node that represents an example of the repeating node - the XPath expression that the wizard generates will select all like nodes (i.e. with the same name and parent structure).

Step 3

Finally, enter the Distinct Expression for the repeating nodes. This expression should represent the value that will be used to determine whether the node has a distinct value as compared to the other selected items. The expression, which is defaulted to the context of the selected repeating node, can be any valid XPath expression that returns a value or node-set. The drop-down values for this entry show the child elements and attributes of the selected repeating node. Use the Query Builder button to generate a new expression.

Use the Selection option to determine whether the distinct expression is to be built as an <xsl:for-each> or <xsl:apply-templates> XSL element.

The name attribute of the generated <xsl:key> element may be defined using the Key name entry. If you have multiple select distincts or other <xsl:key> elements within your stylesheet you must ensure that this name is unique within the stylesheet.

Use the Technique options to determine the distinct expression type to be generated. Two technique options are offered - the Muenchian technique uses the XPath count() function to determine uniqueness (this technique gives better performance but may present problems if nested or sub-grouping is to be used). The second option uses the XPath generate-id() function to determine uniqueness (this technique is slightly slower than the Muenchian technique but is better suited for nested or sub-groupings expressions).


Interactive XSL

The XSL Elements dialog box enables a user to interactively build an XSL or XSLT statement. To open the XSL Elements dialog box either select XSL Elements from the XSL menu or click upon the XSL Elements button on the Input XSL window toolbar.

The dialog box is divided into four areas:-

Preview pane

The preview pane to the top of the dialog displays the XSL command as it is built from the selections made in the dialog. This is a preview of how the statement will look when it is added to the current stylesheet. The preview cannot be edited directly. When the selected element has mandatory attributes (i.e. attributes that must be specified) then these attributes are always displayed.

XSL Elements List

This list shows the XSL/XSLT elements available for selection - the elements being listed depending on which version of the XSL language you have selected (XSLT or XSL-WD). The current language for a stylesheet is selected using the buttons on the Input XSL window toolbar.

Select the XSL/XSLT element you want to edit and insert into your current XSL stylesheet by simply clicking on the element required. As an element is selected the displays to the right of the list (Attributes and Content) are updated and the preview pane will show the element in full syntax.

Attributes

The attributes display shows the attributes for the currently selected XSL element - or, if the selected element has no attributes, this display will show [None].

Mandatory attributes for the element selected are shown and must always be entered (although the dialog does not check that you have entered something). Optional attributes for the element selected are shown with a checkbox to the left of them - to include these optional attributes check the checkbox and enter the required value.

To the right of each attribute entry is shown the type of value that the attribute accepts (e.g. QName, expression, pattern etc.) and if the attribute value can contain variable expressions this value type will be enclosed in curly braces {}.

For each attribute value enter the required value. Where an attribute has a limited or pre-defined set of possible values the dislog will show a drop-down selection of those values - select the value required from the drop-down list. If the attribute expects an expression (i.e. an XPath expression) you can use the [image] button to call up the XPath Query Builder to assist in building the expression.

As each attribute value is selected (in the case of optional attributes) or edited then preview pane is updated to show a preview of the XSL element statement that would be inserted into the current XSL stylesheet.

Content

The content display shows, for information purposes, a list of acceptable child elements for the currently selected element. However, for some elements (e.g. <xsl:comment>, <xsl:message> and <xsl:text>) an edit is displayed so that you can enter directly the content of the XSL element.

When you have completed building your XSL element press the OK button to have it inserted into the current XSL stylesheet. Press the Cancel button abandon the insertion of the XSL element.

If you have set-up the MS XML SDK help (see Environment Options) the SDK Help button will be enabled. Press this button to show context help for the currently selected XSL element in the SDK help file.


Template Navigator

The Template Navigator gives an overview of your stylesheet - showing a tree view of the templates within the stylesheet as well as templates defined in any imported/included stylesheets.

The template navigator can be displayed by pressing F12 or using the [image] button on the XSL window toolbar.

The template navigator display shows a tree view of each stylesheet in the include/import path. Under each stylesheet is shown the templates within that stylesheet (also showing the template attributes). Under each imported/included stylesheet is shown the templates within that stylesheet.

As you select each template in the template navigator tree the navigator will position the XSL editor to the position where that <xsl:template> element is defined. Double-clicking on one of the template items in the tree will position to that template and place the focus to the editor - ready for editing.

Clicking on a include/import stylesheet item in the navigator tree will position the editor at the position in the stylesheet where the <xsl:include> or <xsl:import> element is defined.

The template navigator is not refreshed automatically - this is so that when navigating around a stylesheet that has imported/included stylesheets the original navigation display for the top-level stylesheet is not lost. Use the refresh button on the Template Navigator toolbar to update display to a newly selected stylesheet or when the current stylesheet has been edited.

The caption bar of the Template Navigator has two special buttons:-

The [image] button, when depressed, makes the Template Navigator window dockable. When the Template Navigator is dockable dragging the window will cause it to dock in the main window IDE.

The [image] button, when depressed, makes the Template Navigator window stay on top.


Template Navigator toolbar

Refreshes the Template Navigator with the templates from the currently selected stylesheet. The template navigator is not refreshed automatically - this is so that when navigating around a stylesheet that has imported/included stylesheets the original navigation display for the top-level stylesheet is not lost.

Sort the templates in the navigator by their original position within the stylesheet.

Sort the templates in the navigator alphabetically.

Go back to the previously selected position in the stylesheet.

Go to the position in the stylesheet where the currently highlighted template in the navigator is located. The cursor is positioned at the point in the stylesheet where the template is and focus is placed in the editor ready for editing. You can also achieve this action by double-clicking on any of the templates displayed in the template navigator.

Go forward to a previously selected position in the stylesheet.


Output window

The Output window is where the results of a transformation are displayed. This window is displayed automatically on performing a successful transformation and when you have the (Output Window) Always show window on transform option turned on in the Environment Options.

This window can be displayed at all times by pressing the [image] button on the main IDE window view toolbar.

The results of a transformation can be viewed in several different ways:-

Source View - this enables you to view the transformation output as higlighted code and, if you wish, to edit the output;

Tree View - this shows the output as a node tree (see note below);

As HTML - this shows the output rendered in a browser view;

As XML - this shows the output rendered as XML in a browser - the same effect as loading an XML file into a browser.

NOTE: The output can only be viewed as a tree if it is well-formed XML. It is unlikely that HTML output will display as a tree view as HTML rarely constitutes well-formed XML. However, performing a tidy on the output will produce well-formed XML or you can use the <xsl:output> element and set the method to html to produce HTML as XHTML.

The view mode can be selected by pressing the appropriate buttons on the output window toolbar.

Output can be saved to a file using the [image] button on the output window toolbar.


Output toolbar

Sets the output view mode to text (source edit) mode. The output source is highlighted according to the settings defined in the Editor Options.

Sets the output view mode to tree view. Tree views can only be used to display output that is well-formed XML or XHTML- non well-formed code causes the tree view to display a single error node. Highlighting options for the tree view mode are set in the Editor Options.

Sets the output view mode to XML browse. This view mode displays the XML as a browser displays it.

Sets the output view mode to HTML browse. This view mode is used when the transformed output is HTML and is to be displayed as it would appear in a browser. If images referenced in the HTML do not appear then use the Environment Options to set the output test path so that relative hrefs become valid.

Sets the output view mode to rendered SVG. The SVG in the output window is displayed as rendered SVG (requires the Adobe SVG Viewer plug-in to be installed for the SVG to be rendered).

Sets the output view mode to render and display the output as XSL-FO (Formatting Objects). The XSL-FO in the output window is passed through the FOP (FO Processor) as configured in the Environment Options - if no FOP has been configured yet this button is disabled.

Save the current output as a file. The output is always saved as - Xselerator does not store the filename of the output as it is saved.

Opens the extended auto complete tags window or use the drop-down menu to select the un-closed elements you want to close.

This button is disabled when there are no auto close tags in the buffer.

Pressing this button checks the well-formedness of the XML in the output window.

Pressing this button validates the XML in the output window according to any DTD or Schemas (XSD or XDR) specified in the XML document.

Perform a tidy on the current output. The tidy is performed according to the current tidy settings set in the Environment Options.
This button is disabled if you do not have TidyCOM installed on the workstation.

Perform a tidy on the current Output XML. The tidy is performed according to the editor settings for tab character and tab size.

NOTE: The HTML browse mode requires Microsoft IE4.x to be installed on the workstation. The XML browse mode requires Microsoft IE5.x to be installed on the workstation.


Output statusbar

Output toolbar

1) Shows the position (line:column) within the output source code (only displayed in source view mode)

2) Shows the time taken, in milliseconds, to parse the current input XML document prior to transformation.

3) Shows the time taken, in milliseconds, to parse the current input XSL stylesheet prior to transformation.

4) Shows the time taken, in milliseconds, for the last transformation performed.

NOTE:-

Parse and transform times are only show when MSXML is used as the transformation engine. These times are intended for use as a comparative reference between various stylesheet designs - rather than as a benchmarking tool between different transformation engines.


Output editor context menu

The output editor context menu can be accessed by right-clicking on the output editor or by pressing the [image] key.

Menu Item

Action

Locate generating XSL

Locates the XSL that generated the text or element at the current cursor position in the output editor. The input XSL window is updated to show the XSL that generated the text and the input XML window is updated to show the context node at the point where the output was generated.

Note: This option is only visible during debug sessions and when the incremental output option is selected for debugging (see Environment Options ).

Undo

Redo the last undone change in the output editor.

Redo

Redo the last undone change in the output editor.

Cut

Cut the currently selected text in the output editor.

Copy

Copy the currently selected text in the output editor.

Paste

Paste text in the clipboard to the output editor.

Select All

Marks as selected all text in the output editor.

Copy as RTF

Copy the currently selected text in the output editor as RTF (Rich Text Format) into the clipboard buffer. This copied RTF can then be pasted into word processor documents, RTF files and newsgroup postings as syntax highlighted code.

Copy as HTML (code)

Copy the currently selected text in the output editor as HTML into the clipboard buffer. This copied HTML can then be pasted into word processor documents, HTML editors (such as Microsoft's FrontPage) and newsgroup postings as syntax highlighted code.

The code version of HTML is used to preserve indentation in the copied HTML by placing the generated HTML within <PRE> tags.

Copy as HTML (presentation)

Copy the currently selected text in the output editor as HTML into the clipboard buffer. This copied HTML can then be pasted into word processor documents, HTML editors (such as Microsoft's FrontPage) and newsgroup postings as syntax highlighted code.

Find

Search for text in the output editor.

Find next

Find again search/replace text in the output editor.

Replace

Replace text in the output editor.

Print preview

Shows a preview of the print in the Print Preview window.

Print

Prints the contents of the output editor.


Save Output as

The Save Output as dialog is much the same as the standard save as dialog used in other windows applications - with the exception of the additional Encoding selection and BOM Marker option. This encoding selection allows you to instruct Xselerator which encoding to use when saving the file and, if saving as UTF-8, whether a BOM (Byte Order Marker) is to be included in the file.

For further information on encodings and BOMs (Byte Order Markers) please refer to the Encodings section of this help.


Debugger

Xselerator Debugger

On starting a debug session the Xselerator debugger window will appear. The debugger window shows everything about the current transformation as it is stepped through.

The toolbar at the top of the debugger window allows control of the stepping of the current debugger session and to control what information about the current debugger session is displayed:-

Debugger toolbar

The debugger window has several display modes, each showing relevant information about the current debug session as it is stepped through:-

Current - shows information about the current XSL element and the current XML context node

Call Stack - shows information about the current template call stack

Globals - shows global (stylesheet) parameter and variable values

Environment - shows information about the current transformation settings

Breakpoints - shows information about the current breakpoint settings

Watch - shows the list of additional watched items

Options - shows the current debug session options (some of which may be altered during the session)

Once the debugging session has started and the debugger window has appeared it may be docked into the main Xselerator IDE (by dragging the debugger window over the main IDE).

To terminate a stop the debug session use the stop button on the toolbar. Stopping the debug session using this button leaves the debugger window visible. Alternatively, closing the debugger window also has the effect of terminating the current debug session.

When a debug session is active many of the other toolbar buttons and menu items of Xselerator are disabled. Also, the Input XML and XSL editors are placed into read-only mode. Other actions that are not disabled but which would alter the input XML or XSL (such as opening a new stylesheet) will also have the effect of terminating the current debug session. If such an action is about to terminate the current debug session Xselerator will warn you of the termination and ask you to confirm the action prior to terminating the debug session.

The caption bar of the Debugger has two special buttons:-

The [image] button, when depressed, makes the Debugger window dockable. When the Debugger is dockable dragging the window will cause it to dock in the main window IDE.

The [image] button, when depressed, makes the Debugger window stay on top.


Debugger toolbar

Step/Step into [F8] - execute the next step in the transformation.

Step over [F7] - execute the next step in the transformation without stepping into templates, for-each loops etc.

Step out of [Ctrl+F7] - step out of the current <xsl:template>

Run to breakpoint [Ctrl+F8] - run the debug transformation run until either a breakpoint is encountered in the Input XSL or Input XML (where the condition for that breakpoint, if set, evaluates to true and the breakpoint is enabled).
This button is disabled when no breakpoints have been set in either the Input XML or XSL.

Run to end [Alt+F7] - run the debug transformation to the very last step (the debug session halts on the last step without ending the debug session).

Step backward [Alt+F8] - rewind the last executed step in the debug transformation.

Restart [Shift+Ctrl+F9] - restart the debug session from the start (without requiring the debug session to be re-compiled).

Stop Debug [Alt+F9] - stop the debug session and return to normal editing.

Clear all breakpoints [Alt+Ctrl+F5] - clear all breakpoints in all stylesheets and the input XML document.

Sets the debug window to display the Current XSL element and context node.

Sets the debug window to display the Call Stack information.

Sets the debug window to display the Globals (stylesheet parameters and variables) information.

Sets the debug window to display the Environment information.

Sets the debug window to display the Breakpoints information.

Sets the debug window to display the current list of Watch items.

Sets the debug window to display the current debug session Options.


Debugger Current

Debugger Current display

Input XML (Context Node)

At the top of this display page is shown the current context node of within the Input XML. The Node name is shown along with the Type. In the Node display the there are two buttons:-

Allows you to position (and highlight) the current context node within the input XML

Allows you to open a watch window for the current context node. The watch window shows the node as a full XML fragment (showing any child elements and attributes) and is updated each time the current context node changes.

Below the context node display is shown the current Input XSL Element. The name of the current XSL element along with a button is shown:-

Allows you to position (and highlight) the current XSL element within the input XSL

Alongside the Input XSL Element display you may occasionally see an indicator:-

Indicates that the current XSL element is part of one of the standard XSLT built-in rules. Elements within the built-in rules, and the built-in rules templates themselves, are only stepped into by the debugger if the Include (debug) XSLT built-in rules option is checked on (in Environment Options). There are four standard built-in rules (or templates) within XSLT:-

<xsl:template match="*|/">

<xsl:apply-templates/>

</xsl:template>

<xsl:template match="*|/" mode="m">

<xsl:apply-templates mode="m"/>

</xsl:template>

<xsl:template match="text()|@*">

<xsl:value-of select="."/>

</xsl:template>

<xsl:template match="processing-instruction()|comment()"/>

For more information on these XSLT built-in rules please consult the w3 specifications or your XSLT programmer's reference.

The remaining area of the display alters according to the current XSL element:-

• < xsl:apply-templates >

• < xsl:attribute >

• < xsl:attribute-set >

• < xsl:call-template >

• < xsl:copy >

• < xsl:copy-of >

• < xsl:decimal-format >

• < xsl:element >

• < xsl:for-each >

• < xsl:if >

• < xsl:import >

• < xsl:include >

• < xsl:key >

• < xsl:message >

• < xsl:namespace-alias >

• < xsl:number >

• < xsl:output >

• < xsl:param >

• < xsl:preserve-space >

• < xsl:processing-instruction >

• < xsl:sort >

• < xsl:strip-space >

• < xsl:stylesheet > (and <xsl:transform>)

• < xsl:template >

• < xsl:text >

• < xsl:value-of >

• < xsl:variable >

• < xsl:when >

• < output elements >

Note: Other XSL elements than those listed above have no further information to display.


Debugger Current - ApplyTemplates

Debugger Current display

<xsl:apply-templates>

The display shows the contents of the mode and select attributes of the <xsl:apply-templates> element.

Below the attribute value displays is shown a list of the nodes selected by the select attribute. The node column of the list shows the name of the selected node and a small icon as visual indicator of the node type - the full node type description is also shown in the node type column. For each node listed a value is shown - this value is a simple display of the node value (including any child element values). In the value column a button is also displayed for each item in the list:-

Allows you to open a watch window for the node. The watch window shows the node as a full XML fragment (showing any child elements and attributes)

Double-click on any of the listed nodes to position and highlight that node in the input XML.

If the <xsl:apply-templates> element is part of a built-in rule then the [image] indicator is displayed and the XSLT code for the encountered built-in rule template is displayed.


Debugger Current - Attribute

Debugger Current display

<xsl:attribute>

The display shows the contents of the name and namespace attributes of the <xsl:attribute> element.

Both the name and namespace attributes may contain either a literal value or an expression (contained within {} curly braces) or a combination of both - therefore to the right of each of the attribute values is shown the actual attribute value. The actual attribute value is the value that will be placed in the resulting output after any expressions within {} curly braces have been resolved.

The Actual value display shows the content value of the resulting attribute.

NOTE: When stepping through XSLT the debugger will step through the child elements of the <xsl:attribute> before it steps to the <xsl:attribute> itself. This reflects the actual behaviour of the transformation engine - which resolves the value prior to resolving the XSL element itself.


Debugger Current - AttributeSet

Debugger Current display

<xsl:attribute-set>

The display shows the contents of the name and use-attribute-sets attributes of the <xsl:attribute-set> element.

NOTE: When debugging a stylesheet the debugger will stop on the <xsl:attribute-set> element when it is first encountered in the stylesheet. At this point the attribute set itself (i.e. the child elements of <xsl:attribute-set>) is not stepped through. Whilst stepping through the remainder of the stylesheet the contents (i.e. child elements) of the <xsl:attribute-set> are stepped through when the attribute set is actually called upon - when the attribute set is specified in the use-attribute-sets attribute of the <xsl:copy> and <xsl:element> elements or is specified in an xsl:use-attribute-sets attribute of a literal output element.


Debugger Current - CallTemplate

Debugger Current display

<xsl:call-template>

The display shows the contents of the name attribute of the <xsl:call-template> element.

If the <xsl:call-template> element contains <xsl:with-param> elements then these parameters are evaluated (and stepped through) prior to the actual call to the named template.


Debugger Current - Copy

Debugger Current display

<xsl:copy>

The display shows the contents, if specified, of the use-attribute-sets attribute of the <xsl:copy> element.

Any child elements of <xsl:copy> element are stepped through sequentially after the <xsl:copy> element itself.


Debugger Current - CopyOf

Debugger Current display

<xsl:copy-of>

The display shows the contents of the select attribute of the <xsl:copy-of> element.

At the bottom of the display is shown either a list of the nodes selected by select attribute of <xsl:copy-of> element or, if the select attribute references a fragment, the entire selected fragment is displayed as highlighted XML. Fragments are typically displayed when the select attribute references an XSL parameter or variable.

When the select attribute selects a nodeset the list displays the nodes in that nodeset. The node column of the list shows the name of the selected node and a small icon as visual indicator of the node type - the full node type description is also shown in the node type column. For each node listed a value is shown - this value is a simple display of the node value (including any child element values). In the value column a button is also displayed for each item in the list:-

Allows you to open a watch window for the node. The watch window shows the node as a full XML fragment (showing any child elements and attributes)

Double-click on any of the listed nodes to position and highlight that node in the input XML.


Debugger Current - DecimalFormat

Debugger Current display

<xsl:decimal-format>

The display shows the attribute contents for the <xsl:decimal-format> element.

If the name attribute of the <xsl:decimal-format> is omitted then the specified decimal format is the default format for the stylesheet - and the settings specified in the other decimal format attributes are used to update the debuggers Environment settings.


Debugger Current - Element

Debugger Current display

<xsl:element>

The display shows the contents of the name, namespace and use-attribute-sets attributes of the <xsl:element> element.

Both the name and namespace attributes may contain either a literal value or an expression (contained within {} curly braces) or a combination of both - therefore to the right of each of the attribute values is shown the actual attribute value. The actual attribute value is the value that will be placed in the resulting output after any expressions within {} curly braces have been resolved.


Debugger Current - ForEach

Debugger Current display

<xsl:for-each>

This display has one of two formats - depending on why the the debugger has stopped on the <xsl:for-each> element. The debugger always stops on the <xsl:for-each> element for each iteration of the loop, but it may also stop on the <xsl:for-each> prior to the loop being executed when the debugger option Stop before <xsl:for-each> to examine selected nodes is checked (this option can also be set in the Environment Options). Using this option allows you to ensure that the debugger will always stop on the <xsl:for-each> at least once, even if the select attribute selects an empty node-set.

Display (for each iteration):-

The display shows the contents of the select attribute of the <xsl:for-each> element. The display also shows the current position of the loop (i.e. the current iteration) and the count of the nodes selected. At the bottom of the display is shown a list containing the selected node-set. The node column of the list shows the name of the selected node and a small icon as visual indicator of the node type - the full node type description is also shown in the node type column. For each node listed a value is shown - this value is a simple display of the node value (including any child element values). In the value column a button is also displayed for each item in the list:-

Allows you to open a watch window for the node. The watch window shows the node as a full XML fragment (showing any child elements and attributes)

Double-click on any of the listed nodes to position and highlight that node in the input XML.

The current node of the <xsl:for-each> iteration is automatically highlighted - the sequence of the current node within the list may be affected by any <xsl:sort> elements within the <xsl:for-each> element.

Display (prior to loop execution):-

The display shows the contents of the select attribute of the <xsl:for-each> element and the node count of the select expression node-set. At the bottom of the display is shown a list containing the selected node-set. The node column of the list shows the name of the selected node and a small icon as visual indicator of the node type - the full node type description is also shown in the node type column. For each node listed a value is shown - this value is a simple display of the node value (including any child element values). In the value column a button is also displayed for each item in the list:-

Allows you to open a watch window for the node. The watch window shows the node as a full XML fragment (showing any child elements and attributes)

Double-click on any of the listed nodes to position and highlight that node in the input XML.

The list is unaffected by any <xsl:sort> elements that may be specified within the <xsl:for-each> element.


Debugger Current - If

Debugger Current display

<xsl:if>

The display shows the contents of the test attribute of the <xsl:if> element. Alongside the display of the content of the test attribute is show the value of the test expression (if the test expression results in a node-set the display indicates the number of node in the node-set). The value type (node-set, string, number or boolean) of the test expression is shown and, at the bottom, is shown the Evaluates as boolean evaluation of the test expression. The boolean evaluation is the value that determines whether the 'if' is satisfied or not. XPath evaluates booleans according to the following rules:-

Value type | Boolean evaluation
Boolean | according to boolean value itself (true or false).
Node-set | True when node-set contains one or more nodes.
String | True when string is not zero length.
Numeric | True when value is non-zero.

The debugger always stops on an <xsl:if> regardless of whether the test expression evaluates to true - this allows you to examine the evaluation result. As with a normal transformation, the child elements of the <xsl:if> are only processed when the test expression evaluates to true.


Debugger Current - Import

Debugger Current display

<xsl:import>

The display shows the content of the href attribute of the <xsl:import> element.


Debugger Current - Include

Debugger Current display

<xsl:include>

The display shows the content of the href attribute of the <xsl:include> element.


Debugger Current - Key

Debugger Current display

<xsl:key>

The display shows the contents of the name, match and use attributes of the <xsl:key> element.


Debugger Current - Message

Debugger Current display

<xsl:message>

The display shows the content of the terminate attribute of the <xsl:message> element. If the terminate attribute is specified as yes then then the debug session will terminate on the next step - as would the transformation itself.


Debugger Current - NamespaceAlias

Debugger Current display

<xsl:namespace-alias>

The display shows the contents of the stylesheet-prefix and result-prefix attributes of the <xsl:namespace-alias> element.


Debugger Current - Number

Debugger Current display

<xsl:number>

The display shows the attribute contents for the <xsl:number> element.

The value, format, lang, letter-value, grouping-separator and grouping-size attributes may contain either a literal value or an expression (contained within {} curly braces) or a combination of both - therefore to the right of each of the attribute values is shown the actual attribute value. The actual attribute value is the value that will be placed in the resulting output after any expressions within {} curly braces have been resolved.


Debugger Current - Output

Debugger Current display

<xsl:output>

The display shows the attribute contents for the <xsl:output> element.


Debugger Current - Param

Debugger Current display

<xsl:param>

The display shows the contents of the name and select attributes of the <xsl:param> element.

The actual value of the parameter is shown and the type of the value (string, number, boolean or node-set). If the value type is a node-set then the content of the node-set is displayed at the bottom. The node-set is displayed differently depending on where the node-set is derived from:-

• if the node-set is derived directly from nodes in the input XML (e.g. specified by an XPath expression in the select attribute of the <xsl:param> itself or an <xsl:with-param> element) then the nodes in the node-set are displayed as a list.

• if the node-set is derived from nodes generated in the content (i.e. child nodes) of the <xsl:param> itself or an <xsl:with-param> element then the nodes are displayed as an XML fragment - as the nodes will be detached from the input XML. The XML fragment is displayed as highlighted XML.

NOTE: Parameter values passed to a stylesheet parameter are always interpreted as a string type.

When the parameter value is shown as a list of node the node column of the list shows the name of the selected node and a small icon as visual indicator of the node type - the full node type description is also shown in the node type column. For each node listed a value is shown - this value is a simple display of the node value (including any child element values). In the value column a button is also displayed for each item in the list:-

Allows you to open a watch window for the node. The watch window shows the node as a full XML fragment (showing any child elements and attributes)

Double-click on any of the listed nodes to position and highlight that node in the input XML.

If the <xsl:param> element is a stylesheet parameter its value is stored in the Globals display of the debugger - template parameters can be re-examined in the Call Stack display of the debugger.


Debugger Current - PreserveSpace

Debugger Current display

<xsl:preserve-space>

The display shows the content of the elements attribute of the <xsl:preserve-space> element. Element names listed in the elements attribute are added to the list of elements maintained in the debugger Environment display.


Debugger Current - ProcessingInstruction

Debugger Current display

<xsl:processing-instruction>

The display shows the content of the name attribute of the <xsl:processing-instruction> element.


Debugger Current - Sort

Debugger Current display

<xsl:sort>

The display shows the contents of the select, data-type, order, lang and case-order attributes of the <xsl:sort> element.

The data-type, order, lang and case-order attributes may contain either a literal value or an expression (contained within {} curly braces) or a combination of both - therefore to the right of each of the attribute values is shown the actual attribute value. The actual attribute value is the value that will be placed in the resulting output after any expressions within {} curly braces have been resolved.

If the <xsl:sort> element is the child of an <xsl:for-each> element then the debugger only stops on the <xsl:sort> element on the first iteration through the loop.


Debugger Current - StripSpace

Debugger Current display

<xsl:strip-space>

The display shows the content of the elements attribute of the <xsl:strip-space> element. Element names listed in the elements attribute are added to the list of elements maintained in the debugger Environment display.


Debugger Current - Stylesheet

Debugger Current display

<xsl:stylesheet> and <xsl:transform>

The display shows the contents of the version, id, extension-element-prefixes and exclude-result-prefixes attributes of the <xsl:stylesheet> or <xsl:transform> element.


Debugger Current - Template

Debugger Current display

<xsl:template>

The display shows the contents of the name, match, priority and mode attributes of the <xsl:template> element.

Below the attribute displays is shown the Template called from - indicating the element from which the template was called from (or applied from). If the calling element is part of a built-in XSLT rule then this is indicated with [image] and the XSLT code for the encountered built-in rule template is displayed.

As each <xsl:template> element is encountered its details are added to the Call Stack and removed when the template returns.


Debugger Current - Text

Debugger Current display

<xsl:text>

The display shows the content of the disable-output-escaping attribute of the <xsl:text> element.


Debugger Current - ValueOf

Debugger Current display

<xsl:value-of>

The display shows the contents of the select and disable-output-escaping attributes of the <xsl:value-of> element.

The actual value of the variable is shown and the type of the value (string, number, boolean or node-set). If the value type is a node-set then the content of the node-set is displayed at the bottom. The node-set is displayed differently depending on where the node-set is derived from:-

• if the node-set is derived directly from nodes in the input XML (e.g. specified by an XPath expression in the select attribute of the <xsl:value-of> element) then the nodes in the node-set are displayed as a list.

• if the node-set is derived from generated nodes (e.g. where the select attribute of the <xsl:value-of> refers to a variable and that <xsl:variable> element has child nodes) then the nodes are displayed as an XML fragment - as the nodes will be detached from the input XML. The XML fragment is displayed as highlighted XML.

When the value is shown as a list of node the node column of the list shows the name of the selected node and a small icon as visual indicator of the node type - the full node type description is also shown in the node type column. For each node listed a value is shown - this value is a simple display of the node value (including any child element values). In the value column a button is also displayed for each item in the list:-

Allows you to open a watch window for the node. The watch window shows the node as a full XML fragment (showing any child elements and attributes)

Double-click on any of the listed nodes to position and highlight that node in the input XML.

If the <xsl:value-of> element is part of a built-in rule then the [image] indicator is displayed and the XSLT code for the encountered built-in rule template is displayed.


Debugger Current - Variable

Debugger Current display

<xsl:variable>

The display shows the contents of the name and select attributes of the <xsl:variable> element.

The actual value of the variable is shown and the type of the value (string, number, boolean or node-set). If the value type is a node-set then the content of the node-set is displayed at the bottom. The node-set is displayed differently depending on where the node-set is derived from:-

• if the node-set is derived directly from nodes in the input XML (e.g. specified by an XPath expression in the select attribute of the <xsl:variable> element) then the nodes in the node-set are displayed as a list.

• if the node-set is derived from generated nodes (e.g. in the content child nodes of the <xsl:variable> itself) then the nodes are displayed as an XML fragment - as the nodes will be detached from the input XML. The XML fragment is displayed as highlighted XML.

When the variable value is shown as a list of node the node column of the list shows the name of the selected node and a small icon as visual indicator of the node type - the full node type description is also shown in the node type column. For each node listed a value is shown - this value is a simple display of the node value (including any child element values). In the value column a button is also displayed for each item in the list:-

Allows you to open a watch window for the node. The watch window shows the node as a full XML fragment (showing any child elements and attributes)

Double-click on any of the listed nodes to position and highlight that node in the input XML.

If the <xsl:variable> element is a stylesheet variable its value is stored in the Globals display of the debugger - template variables can be re-examined in the Call Stack display of the debugger whilst they remain in scope.


Debugger Current - When

Debugger Current display

<xsl:when>

The display shows the contents of the test attribute of the <xsl:when> element. Alongside the display of the content of the test attribute is show the value of the test expression (if the test expression results in a node-set the display indicates the number of node in the node-set). The value type (node-set, string, number or boolean) of the test expression is shown and, at the bottom, is shown the Evaluates as boolean evaluation of the test expression. The boolean evaluation is the value that determines whether the 'if' is satisfied or not. XPath evaluates booleans according to the following rules:-

Value type | Boolean evaluation
Boolean | according to boolean value itself (true or false).
Node-set | True when node-set contains one or more nodes.
String | True when string is not zero length.
Numeric | True when value is non-zero.

The debugger always stops on an <xsl:when> regardless of whether the test expression evaluates to true - this allows you to examine the evaluation result. As with a normal transformation, the child elements of the <xsl:when> are only processed when the test expression evaluates to true.

Within a <xsl:choose> the debugger will only stop on an <xsl:otherwise> when none of the <xsl:when> test expressions have been satisfied.


Debugger Current - Output Element

Debugger Current display

<output elements>

For literal output elements in the XSL the debugger will, optionally, stop on the element. The debugger stops on the output elements when the Stop on output elements debugger option is checked (this option can be altered during a debug session on the Options display or set within the Environment Options).

When the debugger encounters an output element the display shows a list of the element attributes. The list shows the Name of the attribute and the Expression content of the attribute in the XSL. For each attribute the Actual Value of the attribute is also shown - thus where attribute values have been specified with an expression contained within {} curly braces the resolved value of that expression can be viewed.

Output elements are considered by the debugger to be any literally specified element even if this element does not immediately result in an output - for example, literal elements within an <xsl:variable> are also stepped through by the debugger.


Debugger Call Stack

Debugger Call Stack display

This display shows the current templates in the call stack. The list at the top shows the templates that are currently in the stack - with the first listed item being the first template called and the last listed item being last (or current) template. Double-clicking on an item in this list will set the XSL editor or XSL treeview to the position where that template is declared.

As each template is selected from the list the displays below are updated:-

The Context Node area shows the node that was the context node when the template was entered (not the current context node within that template).

Allows you to position (and highlight) the context node for selected template within the input XML

The Parameters and Variables lists show the currently declared <xsl:param> and <xsl:variable> elements for the currently selected template.

Allows you to open a watch window for the value of the variable or parameter. The watch window shows the param/variable as a full XML fragment (showing any child elements and attributes) or its native value (string, boolean etc.)


Debugger Globals

Debugger Globals display

This display shows the current stylesheet parameters and variables, as defined by <xsl:param> and <xsl:variable> child elements of the <xsl:stylesheet> element.

The parameters and variables are shown in two lists. Between the lists a splitter bar allows you to increase the display area of either of the display lists.

The Name column in the list indicates the name of the parameter or variable. In the name column there is also a button:-

Allows you to open a watch window for the parameter or variable. The watch window shows the value of the parameter or variable as a full value or as a highlighted XML fragment (showing any child elements and attributes)

Double-click on any of the listed parameters or variables to position and highlight in the input XSL where the element is declared.

Variables are only displayed in the variables when they are in scope. For example, given the following XSL:-

     <xsl:variable name="a">

           <xsl:variable name="b" select="//*"/>

           <xsl:value-of select="$b"/>

     </xsl:variable>

The variable $b will only be visible in the list whilst the content of the <xsl:variable name="a"> element is being stepped through.


Debugger Environment

Debugger Environment display

This display shows the current stylesheet environment - the global settings within the stylesheet as it is processed.

Preserve Space

Shows the list of element names for which space (whitespace) is preserved. By default, on starting a stylesheet, this is set to '*' (all elements). This list is further added to as each <xsl:preserve-space> element is encountered.

Strip Space

Shows the list of element names for which space (whitespace) is stripped. By default, on starting a stylesheet, this is empty. This list is further added to as each <xsl:strip-space> element is encountered.

Decimal Format

Shows the current decimal format settings as set by the last <xsl:decimal-format> element (where no name attribute is specified). If no global <xsl:decimal-format> element has yet been encountered this display shows the default settings for a stylesheet.

Start Mode

Shows the start mode of the stylesheet - as specified by the start mode in the XSL Parameters & Start Mode dialog on starting the debug session. If no start mode was specified the Mode entry is disabled.


Debugger Breakpoints

Debugger Breakpoints display

The debugger breakpoints shows the current breakpoints set in the Input XML and Input XSL.

For further information on setting breakpoints please see Using Breakpoints.


Using Breakpoints

Breakpoints can be set in either the input XSL or XML editors.

Ways to set a breakpoint

There are several ways to set a breakpoint within the Xselerator editors:-

Position the editor cursor on the node you wish to break and press F5 or Alt+F5.
Use the Alt+F5 key specifically when there is already a breakpoint on the current line. The F5 key toggles breakpoints - where if a breakpoint(s) currently exists on the current line they are cleared.

Click in the editor gutter on the line where the node that you want to break on exists. When you set a breakpoint using this method Xselerator will scan the line for the first node that is breakable on and set the breakpoint to that node.

Right-click on the editor or editor gutter and select the Toggle Breakpoints(s) or Set Additional Breakpoint option from the context menu. When the breakpoint is set from the context menu by right-clicking on the gutter the breakpoint will be set at the first node on the line that Xselerator detects as breakable.

Breakpoints and Additional Breakpoints

In XML and XSL there can be more than one node on any given line. The ability to set additional breakpoints allows you to set breakpoints on nodes that occur on the same line in your XSL or XML. Please note that pressing F5 (Toggle Breakpoint) on a line with multiple breakpoints will clear all of the breakpoints on that line.

Breakpoint indicators

When you set a breakpoint a visible indicator is shown in the editors gutter - these indicators have the following meaning:-

a breakpoint exists on the line. If a debug session is active this indicator means that the breakpoint is enabled and is on a valid breakable node (see below for valid breakable nodes)

a breakpoint exists on the line but it is disabled (see below for enabling/disabling breakpoints)

a breakpoint exists on the line but it is not placed on a valid breakable node (see below for valid breakable nodes) or the breakpoint is set in a stylesheet that is not in the imported/included chain of the current debug session

When can breakpoints be set?

You can set a breakpoint in the XSL or XML at any time - whether a debug session is active or not.

Where can breakpoints be set?

Xselerator is only able to break on specific points within your XSL and XML - these points are known as valid breakable nodes. What constitutes are valid breakable node varies between the input XSL and input XML - according to the following rules:-

Input XML - valid breakable nodes

A valid breakable node is any element, attribute, comment, text, CDATA or processing-instruction node;

Text nodes are only seen as valid breakable nodes when they contain non-whitespace characters (CDATA sections are always valid - even when they are empty);

Namespace declarations are never valid breakable nodes (as namespace declarations are not attributes - as they would appear to be);

The XML Declaration (or XML Prolog, e.g. <?xml version="1.0"?>) is never a valid breakable node - as this is not processed by a transformation.

Input XSL - valid breakable nodes

A valid breakable node is any XSL or explicit output element;

An explicit output text node (e.g. <p>This is explicit output text</p>) can be a valid breakable node only when the Step on explicit output text option is turned on in the debugger options (see Environment Options);

Text within an <xsl:text> or <xsl:message> element is not considered as explicit output text - therefore this text is never a valid breakable node.

Note that breakpoints are not valid when they are on the closing tag (e.g. </p>) of an element.

When does Xselerator stop at my breakpoints?

Xselerator stops at breakpoints differently - depending on whether the breakpoint is in the input XSL stylesheet or in the input XML document. Breakpoints in the input XSL stylesheet are treated much like breakpoints in other programming languages - i.e. the debugger stops on that breakpoint when the statement (or, in the case of XSL, the element) is executed.

Breakpoints set in the input XML document are different - the breakpoint is stopped at by the debugger when the node selected becomes the context node. If the node with the breakpoint on it never actually becomes the context node then that breakpoint will never be stopped at by the debugger.

How do I know what nodes the breakpoints are set on?

When you have multiple breakpoints on a single line or a breakpoint on a line with multiple elements it may be difficult to tell where the breakpoint has been set - to determine the node on which the breakpoint(s) is set you can look at the debugger breakpoints display. The lists in this display give the XPath of the nodes on which breakpoints have been set along with the line number.

Setting breakpoint conditions and breakpoint enabled/disabled

The breakpoint conditions can be modified either by right-clicking on the editor gutter and selecting the Breakpoint Condition option from the context menu - or by using the debugger breakpoints display and right clicking on the breakpoint in the debugger breakpoints display.

The breakpoint enabled/disabled state can be modified either by right-clicking on the editor gutter and selecting the Breakpoint Enabled option from the context menu - or by using the debugger breakpoints display and right clicking on the breakpoint in the debugger breakpoints display.

Are my breakpoints saved between Xselerator sessions?

Breakpoint positions, conditions and enabled/disabled state are saved when you exit from Xselerator or when you close a stylesheet or input XML document. When you restart Xselerator and re-open a stylesheet or XML document the previously set breakpoints will be restored along with their conditions and enabled/disabled state.

This information is saved to a file named DebuggerInfo.xml in your Xselerator install directory - to clear all remembered breakpoints you can close Xselerator and delete this file. This file also contains the watch configurations for debugger sessions of each specific stylesheet that has been debugged.


Breakpoint Condition

Use this dialog to set or modify breakpoint conditions. Enter the Breakpoint condition in the edit provided or press the Query Builder button to build the condition expression. The condition expression must be a valid XPath expression - but not necessarily resulting in a boolean value. Determination of whether a breakpoint condition is satisfied follows the normal XPath boolean evaluation rules which are as follows:-

Result type | Condition evaluation
Boolean | Condition is satisfied if value is True.
Node-set | Condition is satisfied when node-set contains one or more nodes.
String | Condition is satisfied when string is not zero length.
Numeric | Condition is satisfied when value is non-zero.

Press OK to update/set the selected breakpoint condition or Cancel to abandon the modification. If an empty condition is entered the breakpoint condition is cleared.

NOTE: If the entered breakpoint condition entered is not a valid XPath expression then the condition is never evaluated as true and the debugger will never stop on this breakpoint.


Debugger Watch

Debugger Watch display

This display shows the current list of watches that have been set. A watch is an expression, variable or node (absolute or relative to the current context node) that Xselerator will update a display for on each step of the debugger.

The Expression/Item column shows the watch expression or item name that has been set.

The Type column shows the type of the evaluated watch expression or variable/param content - i.e. String, Boolean, Number or Nodeset (or particular node type).

The Value column shows an evaluation value of the watch expression or nodeset. If the watch is set to a variable or parameter which is as yet not declared or is not in scope then this column displays this error.

Use the [image] button on any watch to display the value in a Watch window. The watch window gives a more detailed display of the items value and type.

Watches are added to, modified and removed by right-clicking on the Watch list and selecting the appropriate action from the popup menu. The menu has the following options:-

Add watch... | Adds a watch to the list using the Add Watch dialog.
Delete watch | Deletes the currently highlighted watch.
Modify watch... | Modifies the currently highlighted watch using the Modify Watch dialog. A watch may also be modified by double-clicking on a watch item in the list.
Clear all | Clears all the watches from the watch list.


Add/Modify Debugger Watch

Use the Add/Modify Watch dialog box to add a watch or to change an existing watch. A watch allows you to visually keep track of variables and parameters of the stylesheet and nodes of the input XML document during a debugging session. As each step is made in the debugger all watches are updated to reflect the evaluated value of the watch according to the current variable/parameter values and the current context node.

To open the Add/Modify Watch dialog right click on the watch list in the Debugger window and select the Add Watch or Modify Watch options from the context popup menu.

Select the watch type you require by selecting one of the radio buttons:-

Watch Node (simple XPath expression)

Enter the XPath of the node/node-set you wish to watch into the Path (XPath) edit. The XPath expression, when evaluated at each step of the debugger, is evaluated against the current context node - therefore if an absolute node is required then it must be prefixed with a /. The XPath expression may be any valid pure XPath expression that returns a node-set as a result. Therefore, the following restrictions apply to the use of this watch type:-

1) The expression must not reference any variables or parameters;

2) The expression must not use any XSLT functions (such as generate-id(), key(), format-number() etc.)

If you wish to use expressions that contain any of these use the Watch Expression option described below.

Watch Variable/Param

Enter the name of the XSL variable or parameter into the Variable/Param Name edit. You do not need to explictly specify a $ prefix on the name as Xselerator will automatically assume this for you (but if you do prefix with a $ it will be valid).

Watch Expression (complex XPath/XSLT expression)

Enter the full XPath expression to be watched into the Expression edit. Unlike the Watch Node option above, this expression can be any XPath expression that would be valid inside the XSLT being debugged - therefore it may reference parameters and variables and may use the XSLT XPath functions. This expression may also return scalar results (such as strings, numbers, booleans etc.) as well as node-set results.

Use the [image] button to show the XPath Query Builder dialog to assist you in building the XPath expression.

Once you have finsihed defining your watch press the OK button to add/amend the watch in the watch list of the debugger. Press Cancel if you wish to abandon a change or abort adding a new watch.


Debugger Options

Debugger Options display

This display shows the current debugger options. The session options can be altered during a debug session and take effect with the next step instruction.

Session Options:-

Option | When Checked/Changed
Stop on output elements | Debugger stops on output elements when stepping through. When the debugger stops on an output element the actual attribute values of the element are displayed. This option has no effect on <xsl:element> elements.
Stop before <xsl:for-each> to examine selected nodes | Debugger always stops on <xsl:for-each> elements - even when the select returns no matching nodes. This allows you to see which nodes have been selected.
Update displays during run to end/run to breakpoint | When run to breakpoint is selected the displays are updated for all elements as the debugger steps through to find the next breakpoint. When this option is checked the debug displays and editor displays will update continuously as the debugger executes each step until a breakpoint is encountered. Using this option will impact the speed at which Xselerator will find the next breakpoint. Some users may find this continuous display updating uncomfortable or unwanted.

The following pre-session options are displayed for information only and cannot be changed during a debug session - to change these options you must stop the current debug session and set them for the next activated debug session using the Environment Options.

Pre-Session Options:-

Option | When Checked/Changed
Include (debug) XSLT built-in rules | If encountered, the built-in XSLT rules are stepped into by the debugger. When a built-in rule is stepped into the debugger clearly displays that the template is a built-in rule.
Debug externals | The debugger steps into external stylesheet templates (i.e. stylesheets specified by <xsl:include> and <xsl:import>). This feature is not supported in this version.
Show incremental output | As the debugger steps through the output is built incrementally - showing the transformation result of each individual output command.
Show debug compiler progress | When a debug session is started a compiler progress window appears showing the status and progress of the debug compiler prior to the debug session starting. The debug compiler progress window also allows you to terminate the compiler prior to completion.


Debugger Watches

The Debugger Watches window is a holder window for all watches that are being displayed. Each individual Watch Window is shown as a tab in this window. Each tab can also be detached from this window by double-clicking on the appropriate tab or by dragging the tab away from the debugger watches window - this individual watch then becomes a free floating window. Watch windows that have been detached from this Debugger Watches window can be re-docked by dragging them back over this window or double-clicking on the undocked watch window caption - where they will appear as a tab again.


Watch window

A watch window shows a specific watch expression, variable/param or node as defined by adding a watch in the Debugger window or by pressing one of the [image] buttons in the debugger display.

Each watch is updated as the debugger steps through the XSLT code - enabling you to continually view the value, evaluated expression or variable/param content. The caption (or the tab) describes the watch type - which is also shown in the left panel of the statusbar. The right panel of the statusbar shows the node, expression or variable/param name being watched. When a variable or param is being watched display is shown of the current content type of this varaible/param (e.g. string, boolean, number, etc.).

Docking and Un-docking a Watch Window

If the watch window is docked it appears as a tab in the Debugger Watches window - to un-dock it double-click the tab or drag the tab away from the Debugger Watches window. This watch window is then displayed as a free floating window.

If the watch window is undocked drag it over the Debugger Watches window to re-dock it - where it will appear again as a tab within that window. If the Debugger Watches window is not visible (because it currently contains no other watch windows) just double-click on the watch window caption bar.


XPath Query Analyser

The XPath Query Analyser is a tool that allows a user to create and test XPath and XSL Pattern statements against the current Input XML document.

To test an XPath or XSL Pattern query enter the query into the edit box at the top of the XPath Query Analyser window and press the [image] button on the toolbar. On successful execution of the query the resulting nodes are displayed in the grid of the XPath Query Analyser window.

The method and selection language (XPath or XSL Pattern) for the query are set by the other buttons on the XPath Query Analyser toolbar. After executing a query these selections are displayed on the XPath Query Analyser statusbar for information and reference.

Once a resulting list of nodes is displayed you can click on each node in the list - this will position and highlight that node in the Input XML (either in edit or tree view mode). Node that when the content of the current Input XML is edited the resulting node list is cleared from the XPath Query Analyser window (as the result list may now be outdated by the edit).

The XPath Query Analyser can be displayed at any time by pressing the [image] button on the main IDE View toolbar.

The caption bar of the XPath Query Analyser has two special buttons:-

The [image] button, when depressed, makes the XPath Query Analyser window dockable. When the XPath Query Analyser is dockable dragging the window will cause it to dock in the main window IDE.

The [image] button, when depressed, makes the XPath Query Analyser window stay on top.


Query analyser toolbar

XPath Query Analyser toolbar

Executes the currently entered XPath/XSL Pattern query. This button is disabled when the current query edit is empty.

XPath expressions must not use any XSLT functions and the expression must return a node-set.

Executes a complex query. Complex queries may use any XPath/XSLT function and may refer to variables and keys (if they have been defined in a Query Environment). The drop-down part of the button allows you to select the query environment against which the XPath expression is to be executed - or, if in a debug session, select the current debug session as the query environment. The currently selected query environment is displayed below this button.

Executing a complex query allows you to use any XPath/XSLT functions and the expression may return any type.

Specifies that the query should be executed globally - i.e. the query is assumed to have a context node of the current XML document.

Specifies that the query should be executed with the current selected node in the XML being taken as the context node. The current node is selected by positioning the cursor in the XML editor (when in source view mode) or selecting a node in the tree (when in tree view mode).

Specifies the query is to be executed as an XPath query (the query language can also be set in the Environment Options). After the query has been executed the selected language for the query is displayed in the statusbar of the XPath Query Analyser.

Specifies the query is to be executed as an XPath query (the query language can also be set in the Environment Options). After the query has been executed the selected language for the query is displayed in the statusbar of the XPath Query Analyser.

Configure Query Environment. Pressing this button shows the Query Envrionment Config dialog where existing query environments can be modified or new query query envrionments created.

Once a query has been entered in the XML Query edit the query text can be dragged into the XSL source by holding the mouse button down on the XML Query label and moving the mouse to the position in the XSL code where the query expression is to be dropped.


Query Analyser statusbar

1) Shows the selection language (XPath or XSL Pattern) of the last executed query

2) Shows the context node for the last executed query - or (root) if the last query was not executed against a specific context node.


Query Environments

Query environments allow the XPath Query Analyser to execute XPath expressions that include references to variables, keys and namespace prefixes - it is the Query Environment that defines the variables, keys and namespace prefixes.

Query environments can be displayed and configured from the Query Environment Config dialog. You can create up to 10 query environments - the query environment configurations are saved when Xselerator is shut-down and restored when Xselerator restarts.

When executing a complex XPath expression from the XPath Query Analyser you can select query environment to be used from the drop-down menu from the toolbar button.


Query Environment Config

This dialog is accessed by pressing the [image] button on the XPath Query Analyser toolbar. This dialog is used to configure query environments for use in the XPath Query Analyser.

At the top of the dialog is displayed the Environment name with a list of the currently configured query environments. Select the query environment you wish to modify or delete.

Removing a Query Environment

Select the environment you wish to delete from the list at the top of the dialog and press the Remove button.

Creating a Query Environment

Press the New button - the Add Query Envrionment dialog will be displayed.

Modifying a Query Environment

Once you have selected or created a query environment you can modify it by adding, editing and deleting variables, keys and namespace prefixes. The variables, keys and namespace prefixes are shown on individual tabs in this dialog:-

Variables

The grid shows the variables that have been defined for this query environment. The Name column shows the name of the variable and Select column shows XPath expression for the value of the variable. The XPath expression can be any valid XPath expression and may reference other variables defined within this query environment. The XPath expression can return any type (string, number, node-set, etc) and may use the XSLT functions such as key(), generate-id() etc.

To add a new variable to the current query environment press the Add button and enter the new variables name and select expression. To delete a variable from the current query environment select the variable in the grid and press the Delete button. To modify a variable click on the appropriate cell within the variables grid and edit the name and/or expression. You can use the Move Up and Move Down buttons to re-order the sequence in which the variables are defined (although this is for display purposes only as XSLT does not require variables to be defined in a specific sequence even if they reference each other).

When entering or modifying a variables select expression you can press the [image] button to bring up the XPath Query Builder to assist in editing the expression.

Keys

The grid shows the keys that have been defined for this query environment. A key within a query environment is the same as using the <xsl:key> element within XSLT - once a key has been defined XPath expressions may use the XPath key() function to access nodes within the XML document. The Name, Match and Use columns equate to the name, match and use attributes of the <xsl:key> element.

To add a new key to the current query environment press the Add button and enter the keys name, match and use expressions. To delete a key from the current query environment select the key in the grid and press the Delete button. To modify a key click on the appropriate cell within the keys grid and edit the contents as required.

If you have <xsl:key> elements defined in the current XSL stylesheet then you can press the Populate from stylesheet button to copy the keys defined in the stylesheet into this query environment. Once keys have been copied from a stylesheet they may be edited or deleted within the query environment.

Namespaces

The grid shows the namespaces that have been defined for this query environment. Each namespace definition must consist of a namespace prefix and a namespace URI. Once a namespace has been defined within the query environment the namespace prefix may be used within XPath expressions executed against this query environment. Note that namespaces are matched by the namespace URI - therefore the namespace prefix can be anything you want it to be but the namespace URI must match exactly the namespace URI as defined in the XML document that is being queried against.

To add a new namespace definition to the current query environment press the Add button and enter the namespaces prefix and URI. To delete a namespace from current query environment select the namespace in the grid and press the Delete button. To modify a namespace definition click on the appropriate cell within the namespaces grid and edit the contents as required.

You can populate the namespaces defined from the current XML document by pressing the Populate from XML button or from the current XSLT stylesheet by pressing the Populate from stylesheet button. Once namespaces have been copied from the XML or stylesheet they may be edited or deleted within the query environment.


Add Query Environment

This dialog is used to create new query environments for the XPath Query Analyser.

Enter the required Environment Name in the edit as required. If you have selected an existing Query Environment in the Query Environments Config dialog you can copy the variables, keys and namespaces from that environment into the newly created environment by checking the Copy from current environment option.

Once you have entered the environment name press OK to create the new environment. On returning to the Query Environments Config dialog the newly created environment will be selected ready for modifying (i.e. creating variables, keys and namespaces).


XPath Query Builder

The XPath Query Builder dialog enables you select operators, comparators, functions and node tests from the XPath language and use them to build an XPath query.

The XPath Query Builder dialog is available from the XPath Query Analyser by pressing the [image] button. The XPath Query Builder dialog is also available from other dialogs in Xselerator where you are required to enter an XPath query or selection - such as the Wizards and the Interactive XSL Elements dialog.

The various groups of the XPath language are presented on different tabs:-

Operators & Comparators - the XPath operators and comparators

Functions - the XPath functions (by category)

Axis - the XPath axis operators

Nodes - Nodes (element and attribute names) from the current input XML

Stylesheet - items in the input XSL that may be used or referred to in XPath expressions
(this tab is not visible when the XPath Query Builder is called from the XPath Query Analyser)

At the top of the XPath Query Builder dialog is shown the Query edit where you may manually enter or complete the required XPath expression. On each tab is presented lists of the various parts of the XPath language - selecting the required item from the list and pressing the associated [image] button will insert that item into the Query.

Once you have built the required XPath query you can press the OK button to enter the query into the underlying tool. If you have set up the MSXML SDK Help (see Environment Options) you can use the SDK Help button to bring up context help on the current XPath language element.


Query Builder - Operators & Comparators tab

The Operators & Comparators tab allows you to select the various XPath operators and comparators for insertion into the current XPath query. The operators and comparators are separated into their various category groups:-

Operators

XPath operators, axis abbreviations and general XPath selection separators.

Math Operators

Math operators for performing mathematical operations on numeric values.

Boolean Operators

Boolean operators for performing boolean operations on expressions.

Comparators

Comparators (please note that relative comparators, i.e. that include < or >, should only be used on numeric values).

Node Tests

The various XPath node tests.

When you have selected the operator/comparator you wish to use press the [image] button to add it into the Query edit at the current cursor position. When the selected operator requires content (e.g. the not() boolean function or the [] predicate) the cursor is placed between the parenthesis - otherwise the cursor is placed immediately after the inserted operator.


Query Builder - Functions tab

The Functions tab allows you to select the various XPath functions for insertion into the current XPath query. The functions are separated into their various category groups:-

Node Set Functions

Functions that perform operations on or return information from node sets.

String Functions

Functions that perform operations based on string values.

Number Functions

Functions that perform operations based on numeric values.

Boolean Functions

Functions that return a constant boolean or evaluate an expression to a boolean value.

XSLT Functions

Functions that are used within XSLT. Note that the use of these functions may not be included in XPath queries to be executed within the XPath Query Analyser (as such queries are not performed within an XSLT stylesheet).

When you have selected the function you wish to use press the [image] button to add the function into the Query edit at the current cursor position. When a function that requires (mandatory or optional) parameters is inserted into the query edit the cursor is placed within the parenthesis ready for a value to be inserted - otherwise the cursor is placed immediately after the parenthesis.


Query Builder - Axis tab

The Axis tab allows you to select the various XPath axis operators. As you change the selected axis in the list the diagram will change to give an example of the nodes that are selected relative to the context node by the selected axis.

When you have selected the axis you wish to use press the [image] button to add the axis specifier into the Query edit at the current cursor position.


Query Builder - Nodes tab

The Nodes tab allows you to select element and attribute names that have been found in the current input XML. The nodes are broken down into selectable groups:-

Elements

The element names existing in the current input XML.

Attributes

The attribute names existing in the current input XML. Note that the attribute names are not prefixed with an '@' - when the attribute is inserted into the Query edit the '@' is added automatically.

Namespaces

The namespace prefixes existing in the current input XML.

Qualified Elements

The element names existing in the current input XML qualified by their namespace prefix.

Qualified Attributes

The attribute names existing in the current input XML qualified by their namespace prefix. Note that the attribute names are not prefixed with an '@' - when the attribute is inserted into the Query edit the '@' is added automatically.

For each of the selections if no nodes were found in the current input XML of that type the selection will be disabled.

When you have selected the node name you wish to use press the [image] button to add it into the Query edit at the current cursor position.


Query Builder - Stylesheet tab

The Stylesheet tab allows you to select from the various parameters, variables and keys declared in the current XSLT stylsheet. Note that Xselerator populates the parameter and variable selection lists from all parameters and variables found in the current XSLT stylesheet - it does not check to ensure these are declared or in scope for the current XPath query being built. The stylesheet tab is only visible when building XPath queries from the Wizards.

When adding a parameter or variable name there is no need to prefix it with the $ indicator as Xselerator will add this automatically for you.

When adding a key the XPath Query Builder enters pre-built key function into the Query edit ready for the key selection expresseion to be entered.

When you have selected the variable, parameter or key you wish to use press the [image] button to add it into the Query edit at the current cursor position.


Project Manager

The Project Manager window displays the contents (XSL and XML files) of the currently loaded project.

To open a project select the File | Open Project menu option from the main IDE menu or, to create a new empty project, select the File | New Project menu option.

Once a project has been opened or created the Project Manager window can be displayed (if not already visible) by pressing the [image] button on the main IDE view toolbar.

Project display

The currently loaded project is displayed as a tree in the Project Manager window. The XSL stylesheet files and example XML documents that constitute the contents of the project being shown under the XSL Files and XML Files tree items.

Opening a file in the project

To open one of the files on the project you can double-click on the file tree item - this will open an XSL stylesheet in the Input XSL window and an XML document in the Input XML window. To open a file you can also drag the file in the project tree over the required editor - allowing you to, if you wish, open an XSL stylesheet in the Input XML editor.

Adding files to the project

Files can be added to the project by pressing the [image] button on the project manager toolbar You can also add files to the project by dragging files from a windows file explorer into the project manager window. Also, if you set the Add opened files to project automatically option on in the Project Options any XSL stylesheets or XML documents opened while the project is open will be automatically added to the current project.

See the help on the Project Manager toolbar for other activities relating to manipulating the currently opened project.


Project Manager toolbar

Creates a new, untitled project.
If the current project is changed but unsaved the system asks to confirm if changes are to be lost or saved.

Opens a different project. The small down arrow on this button shows a menu list containing recently opened Xselerator project files.
If the current project is changed but unsaved the system asks to confirm if changes are to be lost or saved.

Saves the currently loaded project. This button is disabled when the current project has not been modified. Saving the project does not automatically save the currently loaded XML document and XSL stylesheet.

Saves the currently loaded project as a new project.

Closes the currently loaded project and closes the project manager window.

Shows the Project Options dialog - allowing the current project options to be set.

Adds a new file to the project. Files added with an extension of .xsl are added to the projects XSL files list - files with any other extension are added to the projects XML files list. Once a file has been added it may be moved between the XSL and XML file lists.

Removes the currently highlighted file from the project. If no file is currently highlighted in the project manager then this button is disabled.


Project Manager statusbar

1) Shows whether the current project has been modified.

2) Shows the full path and file name of the currently loaded project or (Untitled) if the project is new an, as yet, unsaved.


Project Options

The project options dialog allows you to set the options that are saved with the project. The following options are available:-

Project File :-

Option | When Checked/Changed
Add opened files to project automatically | When Input XML or XSL files are opened in the main IDE they are automatically added to the opened project.

Project Save/Restore:-

Option | When Checked/Changed
Output Test Path | When the output test path is changed in the Environment Options this change is also recorded in the project and saved when the project is saved. On re-loading the project the output test path for the project are restored.
Print/Page setup options | When the print or page setup options are changed (using the Page Setup) the changes are also recorded in the project and saved when the project is saved. On re-loading the project the print and page setup options for the project are restored.
Schema Cache options | Not supported in this version.


BookItem_Options

Options

Xselerator provides many options to allow you to configure the display and behaviour of its IDE. The options are separated into two categories:-

Editor Options - controls the display characteristics and behaviour of the code editors.

Environment Options - controls the overall behaviour and display of the Xselerator IDE.


Editor Options

The editor options define how the editor looks and behaves. The various controlling options are divided into the following sections - each section on a separate tab:-

Behaviour - options for determining the editor behaviour and undo capabilities.

Display - options for determining the overall display characteristics of the code editors.

Colors - options for determining the colors used for syntax highlighting within the editors

Intuitive - options for determining the XSL and HTML intuitive drop-downs.

Tree View - options for determining the display characteristics of the tree views.

Script Editor - options for determining the colors used for syntax highlighting within Script displays.

CSS Editor - options for determining the colors used for syntax highlighting within CSS displays.

Intuitive drop-downs are similar to the features of other development environments such as Microsoft's "Intellisense" and Borland's "Code Insight".

The example displays at the bottom of the Editor Options dialog show the display effects as they are altered by each option. The options are only applied to the editors when the OK or Apply buttons are pressed. All editor options are saved by Xselerator on exit - unless the save settings on exit option is turned off in the Environment Options.


Editor Options - Behaviour

Editor Options - Behaviour tab

The options on this tab determine how the code editors behave and control the undo capabilities:-

Behaviour Options:-

Option | When Checked/Changed
Auto tag completion | When a tag is completed (i.e. by pressing a >) the editor examines the element name and inserts a closing tag for the element. If the character immediately before the typed > is a slash (/) then the editor does not insert a closing tag as the tag is seen as a self-closing tag. This option applies to all editors.
Extended auto tag completion | When a tag is to be completed (i.e. by pressing a >) you may press Shift+Ctrl+> instead - the closing tag for the element is then placed into a buffer rather entered directly into the source. When there are closing tags in the buffer you may then press Shift+Ctrl+< to close them all or use the auto tag completes menu or window to close the elements you want.
Auto complete mandatory XSL attributes | When a tag is completed by the auto tag completion any mandatory attributes for the XSL element are automatically placed into the element. This option only applies to the Input XSL editor and is only active when the auto tag completion option is turned on.
Auto select XSL language | When a stylesheet is created or loaded the system determines the XSL language used (either XSL or XSLT) according to the xmlns:xsl namespace URI. The current language selected determines how the XSL is highlighted and the elements offered as suggestions in the XSL intuitive drop-downs (see also Highlighting Options|XSL Highlighting Language and Intuitive Options)
Auto indent | Positions the cursor under the first nonblank character of the preceding nonblank line when press Enter is pressed. This option applies to all editors.
Smart tabs | Tabs to the first non-whitespace character in the preceding line. It is recommended that you do not enable this feature as it does not suit the indent nature of XML/XSL. This option applies to all editors.
Find at cursor | Places the text at the cursor (or the selected text) into the Text To Find entry of the Search or Replace dialog when a search or replace is executed. This option applies to all editors.
Trim trailing spaces | Removes any spaces at the end of a line when the cursor moves off of the line. This option applies to all editors.
Bookmarking (Breakpoints) | Enables bookmarking and breakpoints on code editors. Within each editor there are up to 10 bookmarks/breakpoints that can be placed (numbered 0 thru to 9). Bookmarks/breakpoints are displayed in the gutter of the editor. This option applies to all editors (breakpoints are only set against Input XML and Input XSL).
Cursor past end of line | Allows the cursor to travel past the end of a line (once a character is typed beyond the end of the line spaces are used to pad the line to that length/position. This option applies to all editors.
Cursor past end of file | Allows the cursor to travel down past the end of the file. This feature is not supported in this version of Xselerator.
Drag'n'drop editing | Selected text can be dragged (by holding the left mouse button down and moving the mouse). This option applies to all editors.
Drop files | Files can be dropped onto the editors - the file is then opened in that editor. This option only applies to the Input XML and XSL editors.
Scroll line number hint | When the vertical scroll bar of the editor is thumb dragged a hint is displayed on the scroll bar indicating the line number at the top of the editor. This option applies to all editors.
File change notification | When a file currently loaded is changed by another application or user the system informs that the file has changed - and gives the option to re-load that file if required. This option only applies to the Input XML and XSL editors as well as the current project loaded in the Project Manager.

Undo Options:-

Option | When Checked/Changed
Undo limit | Specifies the number of changes that may be undone in the editor. This option applies to all editors.
Undo after save | Allows changes to be undone after the file in the editor is saved. This option only applies to the Input XML and XSL editors.


Editor Options - Display

Editor Options - Display tab

The options on this tab determine how the code editors display the code and the various options that control how the code is highlighted:-

Display Options:-

Option

When Checked/Changed

Tabs to spaces

Pressing the tab key results in a preset number of spaces being inserted into the code text. When this option is unchecked then actual tab characters are inserted into the code text when the tab key is pressed. This option applies to all editors.

This setting is also used to determine the character, either space or tab, that is used when performing block indents and unindents.

Tab width

Determines the number of spaces inserted when the tab key is pressed (when the Tabs to spaces option is checked) as well as the display width of tab characters within the code. This setting applies to all editors.

Visible gutter

Makes the gutter appear in code editors. The gutter is used to display line numbers for the code and for bookmark/breakpoint indicators. This option applies to all editors.

Extra gutter width

Allows the size of the gutter to be increased to ensure that bookmark/breakpoint indicators do not obscure line number display. This option applies to all editors.

Line no. digits

Determines the space for the maximum number of digits used to display the line numbers in the editor gutter. This option applies to all editors.

Visible right margin

The right margin is a vertical line in the editor at a specified column position. The right margin is only a visual reference - it does not determine the maximum line length or line wrapping. This option applies to all editors.

Right margin

Sets the column position for the right margin reference line. This option is only applicable when Visible right margin option is checked. This option applies to all editors.

Highlighting Options:-

Option | When Checked/Changed
Syntax highlighting | The code in the XML, XSL and output editors is highlighted (according to the colors defined in the color settings). This option applies to all editors.
XSL highlighting language | Determines the language, XSL or XSLT, that is used to determine the highlighting of XSL elements. When set to XSL only items defined in the xmlns:xsl="http://www.w3.org/TR/WD-xsl" namespace are highlighted as XSL elements and attributes, when set to XSLT only items defined in the xmlns:xsl="http://www.w3.org/1999/XSL/Transform" namespace are highlighted as XSL elements and attributes. This option only applies to the Input XSL editor.
Highlight HTML | Specifies that elements and attributes recognised as being HTML will be highlighted in the special HTML colors within the Input XSL editor. If XSL stylesheets used to transform into HTML are used then select this option - however, if transformations to XML are being edited it is better to turn this option off to avoid unnecessary color highlighting of XML elements names that may coincidentally match HTML names. This option only applies to the Input XSL editor.
Highlight output as XML | Output code is highlighted as XML only - recognised HTML element and attributes are not highlighted. Set this option if transformations being authored are intended as XML or uncheck this option if the transformations are to HTML. This option only applies to the output editor.
Highlight check HTML attributes | Attributes within recognised HTML elements are checked to determine if they are valid HTML attributes for that element. If the attribute is valid it is highlighted as a HTML attribute - otherwise the attribute is either highlighted as an error attribute (if the Highlight error XSL/HTML attributes option is checked - see immediately below) or as a HTML attribute regardless of the fact it may be unrecognised. This option only applies to the Input XSL and output editors.
Highlight error XSL/HTML attributes | Attributes within XSL and HTML elements that are not recognised as valid for that element are highlighted in a special error color setting. The XSL attributes are checked against the current XSL language setting in effect. This option only applies to the Input XSL editor.

Font Options:-

Option | When Checked/Changed
Font | Determines the font used in the editors. This option applies to all editors.
Size | Determines character point size used in the editors. This option applies to all editors.


Editor Options - Colors

Editor Options - Colors tab

The options on this tab determine the colors used for syntax highlighting within Xselerator's code editors.

On the left of the tab is a list of the highlight items - containing the discrete code parts that may have different color and font attributes assigned to them. The description of what each of these highlight items affects is as follows:-

Highlight items | Effect
Default | The foreground color setting is the default foreground color used by any other highlight item that has its foreground color set to Default. The background color setting is the default background color used by any other highlight item that has its background color set to Default. The style settings for this item have no effect.
Selected | Is the color in which selected text is displayed. The style settings for this item have no effect because when text is selected in an editor the style of the original highlighting is retained.
Symbols | Is the color in which the basic XML markup symbols are highlighted - these symbols include the < and > that enclose elements as well as the = (equal) and quotes (single/double) used to define attributes.
Space | The background color setting can be used to determine the overall background color of the editor. This background color can then be overridden by the other item background color settings. This items background color also effects the color of spaces within elements. The style settings for this item have little effect as spaces cannot be bold, italic or strikeout - therefore only the underline style will have any noticeable effect on spaces within an element.
Text (element values) | Is the color and style in which text between element tags (element values) is displayed. This color setting is also used by the editors to display text when the entire display is not recognisable as XML markup.
Entity references | Is the color and style used to display entity references, e.g. &lt; and &gt; Note that entity references within attribute values may have a different color setting (see below).
XSL Elements | Is the color and style used to display XSL element names. Only XSL element names recognised as valid under the currently selected XSL language are highlighted in this color - any unrecognisable XSL element name is highlighted in the XML Element item setting.
XSL Attributes | Is the color and style used to display XSL attribute names. Only XSL attribute names recognised as valid under the currently selected XSL language and valid for the XSL element in which they are specified. If the attribute is unrecognisable it is either highlighted as an XML attribute or as an Erroneous attribute - dependant on the display setting of Highlight error XSL/HTML attributes.
HTML Elements | Is the color and style used to highlight recognised HTML element names. This color is only used when the display option Highlight HTML is checked.
HTML Attributes | Is the color and style used to highlight recognised HTML attribute names. Only HTML attribute names recognised as valid for the HTML element in which they are specified are highlighted in this color. If the attribute is unrecognisable it is highlighted according to the settings of the Highlight check HTML attributes and Highlight error XSL/HTML attributes options.
XML Elements | Is the color and style used to display XML element names.
XML Attributes | Is the color and style used to display XML attribute names.
Attribute values | Is the color and style used to display all attribute values, i.e. the text between the attribute quotes. All XML, XSL and HTML attribute values are highlighted using this setting.
Entity refs in attribute values | Is the color and style used to display entity references (e.g. &lt; and &gt;) specified within attribute values.
Comment markers | Is the color and style used to display the begin and end markers of comments, i.e. the <!-- and --> markers.
Comment text | Is the color and style used to display text between comment markers.
CDATA markers | Is the color and style used to display the begin and end markers of CDATA sections, i.e. the <![CDATA[ and ]]> markers.
CDATA text | Is the color and style used to display text in CDATA sections.
Processor instructions | Is the color and style used to display entire processor instruction nodes.
DOCTYPE | Is the color and style used to display entire DOCTYPE declarations. Note that the editors do not highlight the individual parts of a DTD.
Namespace attributes | Is the color and style used to display namespace declarations, e.g. xmlns:xsl.
Namespace URI values | Is the color and style used to display the namespace URI values - the value between quotes of xmlns declarations.
Erroneous attributes | Is the color and style used to highlight erroneous XSL and HTML attributes. The use of this setting is affected by whether the Highlight check HTML attributes and Highlight error XSL/HTML attributes options are checked.
svg Elements | Is the color and style used to highlight SVG elements - when the SVG UDP is loaded (see below).
svg Attributes | Is the color and style used to highlight SVG attributes - when the SVG UDP is loaded (see below).
fo Elements | Is the color and style used to highlight XSL-FO elements - when the FO UDP is loaded (see below).
fo Attributes | Is the color and style used to highlight XSL-FO attributes - when the FO UDP is loaded (see below).
xs Elements | Is the color and style used to highlight XSD (XML Schema) elements - when the XSD UDP is loaded (see below).
xs Attributes | Is the color and style used to highlight XSD (XML Schema) attributes - when the XSD UDP is loaded (see below).
other elements & attributes | Other element and attribute highlighting may appear when additional UDP files have been loaded (see below).

As each highlight item is selected the foreground and background color selector comboboxes are set to the current setting of the item and the current style settings are placed into the style checkboxes. Changing the foreground, background and style settings then updates the currently selected highlight item and updates the example display at the bottom of the dialog.

The foreground and background color selector comboboxes list the standard available colors and windows settings colors. To select a color not listed press the palette button to show the color selection dialog and define your own color.

The User Defined Prefixes button allows you to load and manage UDP files. UDP files are XML files that describe a specific namespace application to Xselerator, allowing Xselerator to provide highlighting and intuitive features for those namespace prefixes. Pressing the User Defined Prefixes button displays the User Defined Prefixes dialog where the UDP files are managed.

Use the Restore Defaults button to reset color and style settings for all highlight items back to their original Xselerator default values.


User Defined Prefixes

The Xselerator XSL and HTML (output) editors offer highlighting for XSL and HTML elements and attributes. Along with the highlighting Xselerator provides element, attribute and attribute value intuitives (intellisense) for both XSL and HTML. Highlighting and intuitive is provided through the recognition of namespace prefixes (for XSL) or by HTML element names (for HTML - see Editor Options).

User Defined Prefixes (UDP) in Xselerator allows you to add namespace recognition to the XSL and output editors - thus allowing you to add syntax highlighting and intuitive for specific namespace prefixes. The UDP for each namespace prefix is defined using an XML document - Xselerator ships with 3 of the UDP files: for XSL-FO, SVG and XSD (these files should be located in the Xselerator install directory in a sub-directory of LanguageRefs).

To access this dialog press the User Defined Prefixes button on the Colors tab of the Editor Options dialog.

The User Defined Prefixes dialog shows a list to the left of the current namespace prefixes for which definition files have been designated. Each item in the list has a checkbox which can be used to enable and disable support for this namespace prefix.

To remove a User Defined Prefix

Highlight the UDP you wish to remove in the list to the left of the dialog and press the Remove button.

To add a User Defined Prefix

Press the Add button - an open dialog will appear in which you must locate the XML file that contains the definition of the User Defined Prefix and namespace. Once the XML file has been loaded sucessfully the dialog will show the load status in the Status panel - a successful load will read New/Modified - not yet fully loaded (and the panel will show green). If the definition file was not loaded successfully the Status panel will show the error and turn red.

Once loaded the Namespace prefix and URI panels will be updated from the information found in the UDP definition file - these cannot be amended in Xselerator (to change these you must edit the UDP definition file itself).

Configuring a User Defined Prefix

Once a UDP definition file is sucessfully loaded you can adjust the intuitive options in this dialog:-

Element Intuitive

When checked element intuitive is enabled for this namespace prefix. In the editors when you type <xxx: (where 'xxx' is the namespace prefix) a drop-down list of elements defined in this namespace will appear.

Attribute Intuitive

When checked attribute intuitive is enabled for this namespace prefix. In the editors when you press space in an element of this namespace prefix a drop-down list of the attributes for this element will appear.

Attribute Value Intuitive

When checked attribute value intuitive is enabled for this namespace prefix. In the editors when you are between empty quotes of an attribute a drop-down list will appear giving the possible values for this attribute. You can leave this option unchecked but still acess the attribute values drop-down by press Alt+F1 within empty quotes of an attribute.

Delay

Specifies the time delay before which the intuitive drop-downs appearsfor this namespace prefix.

The color syntax highlighting for UDP prefixes is configured in the Editor Options Colors tab - pressing OK in this dialog should return you to those options where you should see the new namespace prefixes defined by the UDP file displayed in the list of highlight items.

Creating a User Defined Prefix definition XML file

You can create and load up to 10 User Defined Prefix files - these files are XML files of a specific structure. For more information on how to create these files please visit: www.marrowsoft.com/Xselerator/UDPFiles.htm


Editor Options - Intuitive

Editor Options - Intuitive tab

The options on this tab determine the state of Xselerator's intuitive drop-downs within the code editors. Intuitive is similar to features in other development environments such as Microsoft's "Intellisense" and Borland's "Code Insight". This feature allows drop-downs of selectable XSL and HTML elements and attributes to appear as you are typing code and on certain keys being pressed.

XSL Intuitive options:-

Option | When Checked/Changed
XSL Element Intuitive | Drop-downs containing valid XSL element names appear in the Input XSL editor after typing <xsl: The XSL elements that appear in the drop-down list are dependant on the current XSL language selected and, when the XSL/XSLT model suggestions only option is checked, elements that are valid at the current position in the stylesheet.
XSL Attribute Intuitive | Drop-downs containing valid XSL attributes for the current XSL element appear in the Input XSL editor when a space is pressed within an XSL element. The attributes that appear in the drop-down list are dependant on the current XSL language selected and only attributes that have not already been specified in the current element - if there are no attributes left to be selected the drop-down will not appear. The XSL Attribute drop-down has visual indicators against each listed attribute to denote whether the attribute is optional or mandatory.
XSL Attribute Value Intuitive | Drop-downs containing XSL attribute value suggestion appear for XSL attributes when within attribute quotes. Attribute value intuitive may be turned off but still be activated within the editor by pressing Alt+F1 between empty attribute quotes.
Extended XSL Attribute Value Intuitive | Drop-downs containing recently used/tested XPath expressions appear when within empty quotes of XSL select attributes.
XSL/XSLT model suggestions only | Only XSL elements that are valid at the current position appear in the drop-down lists. For example, when inside an <xsl:choose> element the list will only suggest <xsl:when> or <xsl:otherwise> elements. This option, when checked, also affects the HTML Element Intuitive - only suggesting HTML elements when output elements are valid at the current position in the stylesheet.
Delay | Specifies the time delay before which the intuitive drop-down appears. If a key is pressed during this delay period then the drop-down will not appear. Setting the delay to 0 (zero) means that the intuitive drop-down will appear immediately.
XSL/XSLT Tooltips | When the mouse cursor is positioned over an XSL element in the Input XSL editor a tip is displayed showing the model (including valid XSL attributes) for that element. When the mouse cursor is positioned over an XSL attribute a tip is displayed showing the expected content of that attribute. These tooltips only appear when not in a debug session.
Debugger evaluation tooltips | When the mouse cursor is positioned over an XSL attribute value in the Input XSL editor during a debug session a tip is displayed showing the evaluation of the attribute expression.

HTML Intuitive options:-

Option | When Checked/Changed
HTML Element Intuitive | Drop-downs containing HTML element names appear in the Input XSL editor after typing < If the XSL/XSLT model suggestions only option is checked (see above) then the HTML element drop-down list will only appear when output elements are valid at the current position in the stylesheet.
HTML Attribute Intuitive | Drop-downs containing valid HTML attributes for the current HTML element appear in the Input XSL editor when a space is pressed within a HTML element. Only attributes that have not already been specified in the current element are displayed - if there are no attributes left to be selected the drop-down will not appear.
HTML Attribute Value Intuitive | Drop-downs containing HTML attribute value suggestion appear for HTML attributes when within attribute quotes. Attribute value intuitive may be turned off but still be activated within the editor by pressing Alt+F1 between empty attribute quotes.
Delay | Specifies the time delay before which the intuitive drop-down appears. If a key is pressed during this delay period then the drop-down will not appear. Setting the delay to 0 (zero) means that the intuitive drop-down will appear immediately.
HTML Casing Uppercase Lowercase As first character | Determines the casing used when HTML intuitive inserts elements and attributes. Use Uppercase or Lowercase to fix the casing permanently or use the As first character option to instruct the HTML intuitive to select the case according to the first character typed when selecting the element/attribute.


Editor Options - Tree View

Editor Options - Tree View tab

The options on this tab determine the display characteristics and behaviours of the tree views of XML/XSL code.

Tree View Font Options:-

Option | When Checked/Changed
Font | Determines the font used in the tree views. This option applies to all tree views.
Size | Determines character point size used in the tree views. This option applies to all tree views.

Tree View Positioning:-

Option | When Checked/Changed
Position tree view at node when switching from source | When the view mode of XML, XSL or output is switched from source (editor) to tree view Xselerator will position the tree view to the node that corresponds to the current cursor position of the editor. This option can only function correctly when view mode is switched to tree view on valid (well-formed) XML code.
Position cursor in source when switching from tree view | When the view mode of XML, XSL or output is switched from tree view to source (editor) Xselerator will position the cursor in the editor source at the node that corresponds to the node highlighted in the tree view at time of switching.

Tree View Highlight Options:-

Option | When Checked/Changed
Use highlighting on tree views | Tree views will use the highlighting colors defined for each item when displaying the nodes of the XML tree.
Use background colors on tree view highlighting | Background colors specified in the color syntax highlighting settings are also used when displaying nodes in the XML tree.
Use font styles on tree view highlighting | Font styles (bold, italic, etc.) specified in the color syntax highlighting settings are also used when displaying nodes in the XML tree.


Editor Options - Script Editor

Editor Options - Script Editor tab

The options on this tab determine the colors used for syntax highlighting within Xselerator's Script code editors.

NOTE: Script editors appear at the bottom of the tree views when a node that is determined to contain script is selected. This version of Xselerator does not support editing of code in tree view mode therefore these syntax highlight settings are currently only for display purposes.

On the left of the tab is a list of the highlight items - containing the discrete code parts that may have different color and font attributes assigned to them. The description of what each of these highlight items affects is as follows:-

Highlight items | Effect
Default | The foreground color setting is the default foreground color used by any other highlight item that has its foreground color set to Default. The background color setting is the default background color used by any other highlight item that has its background color set to Default. The style settings for this item have no effect.
Selected | Is the color in which selected text is displayed. The style settings for this item have no effect because when text is selected in an editor the style of the original highlighting is retained.
Symbols | Is the color in which the basic script punctuation and symbols are highlighted.
Space | The background color setting can be used to determine the overall background color of the editor. This background color can then be overridden by the other item background color settings. This items background color also effects the color of spaces within elements. The style settings for this item have little effect as spaces cannot be bold, italic or strikeout - therefore only the underline style will have any noticeable effect on spaces within an element.
Comment | Is the color and style in which script comments are displayed.
Identifier | Is the color and style in which identifiers (i.e. words not recognised as recognisable keywords) are displayed.
Key | Is the color and style in which recognised script language keywords are displayed.
Number | Is the color and style in which numeric literal values are highlighted.
String | Is the color and style in which string literal values are highlighted.
Invalid symbol (PHP) | Is the color and style in which invalid symbols are displayed for PHP script.
Variable (PHP) | Is the color and style in which variable names are displayed in PHP script.

As each highlight item is selected the foreground and background color selector comboboxes are set to the current setting of the item and the current style settings are placed into the style checkboxes. Changing the foreground, background and style settings then updates the currently selected highlight item and updates the example display at the bottom of the dialog.

The foreground and background color selector comboboxes list the standard available colors and windows settings colors. To select a color not listed press the palette button to show the color selection dialog and define your own color.

Font Options:-

Option | When Checked/Changed
Font | Determines the font used in the script editors.
Size | Determines character point size used in the script editors.


Editor Options - CSS Editor

Editor Options - CSS Editor tab

The options on this tab determine the colors used for syntax highlighting within Xselerator's CSS code editors.

NOTE: CSS editors appear at the bottom of the tree views when a node that is determined to contain CSS is selected. This version of Xselerator does not support editing of code in tree view mode therefore these syntax highlight settings are currently only for display purposes.

On the left of the tab is a list of the highlight items - containing the discrete code parts that may have different color and font attributes assigned to them. The description of what each of these highlight items affects is as follows:-

Highlight items | Effect
Default | The foreground color setting is the default foreground color used by any other highlight item that has its foreground color set to Default. The background color setting is the default background color used by any other highlight item that has its background color set to Default. The style settings for this item have no effect.
Selected | Is the color in which selected text is displayed. The style settings for this item have no effect because when text is selected in an editor the style of the original highlighting is retained.
Symbols | Is the color in which the basic script punctuation and symbols are highlighted.
Space | The background color setting can be used to determine the overall background color of the editor. This background color can then be overridden by the other item background color settings. This items background color also effects the color of spaces within elements. The style settings for this item have little effect as spaces cannot be bold, italic or strikeout - therefore only the underline style will have any noticeable effect on spaces within an element.
Comment | Is the color and style in which CSS comments are displayed.
Identifier | Is the color and style in which identifiers (i.e. words not recognised as recognisable keywords) are displayed.
Key | Is the color and style in which recognised CSS keywords are displayed.
Number | Is the color and style in which numeric literal values are highlighted.
String | Is the color and style in which string literal values are highlighted.

As each highlight item is selected the foreground and background color selector comboboxes are set to the current setting of the item and the current style settings are placed into the style checkboxes. Changing the foreground, background and style settings then updates the currently selected highlight item and updates the example display at the bottom of the dialog.

The foreground and background color selector comboboxes list the standard available colors and windows settings colors. To select a color not listed press the palette button to show the color selection dialog and define your own color.

Font Options:-

Option | When Checked/Changed
Font | Determines the font used in the CSS editors.
Size | Determines character point size used in the CSS editors.


Environment Options

The environment options define the overall behaviour and settings of the Xselerator IDE. The various controlling options are divided into the following sections - each section on a separate tab:-

View - options for controlling the view characteristics of the IDE and individual windows.

Output - options for determining the output test path used when viewing output HTML.

Debugger - options for determining the behaviour of the Xselerator debugger.

Recent Files - options for controlling the remembered recent files.

Transformation - options for determining the transformation engine used by Xselerator.

XSL-FO Rendering - options for configuring the FOP (FO Processor)

XSL Help - options for setting whether the MSXML SDK help files are used from Xselerator.

HTML Tidy - options for determining the tidy settings.

The Save settings on exit option at the bottom of the Environment Options dialog is used to define whether all options and settings (environment settings, editor options, window positions etc.) are saved when Xselerator is shut down. Uncheck this option if you do not want changes made to the current sessions settings to be saved on exit.


Environment - View

Environment Options - View tab

The options on this tab determine the layout and display characteristics of Xselerators IDE:-

Main Window:-

Option | When Checked/Changed
Edit toolbar | Edit toolbar is visible on the main IDE.
XSL toolbar | XSL toolbar is visible on the main IDE.
View toolbar | View toolbar is visible on the main IDE.

Input XSL Window:-

Option | When Checked/Changed
Visible | Input XSL window is visible.
Toolbar | Input XSL toolbar is visible on the Input XSL window.
Statusbar | Statusbar on the Input XSL window is visible.
Docked | Sets the Input XSL window docked within the main IDE. If this option is un-checked the Input XSL window is undocked from the main IDE.
Always show window on opening XSL file | The Input XSL window is always made visible and brought to the top of other windows when an XSL stylesheet is opened.
Auto load associated XML file | Associated XML files are automatically loaded when an XSL stylesheet is loaded.
View mode | Determines the current view mode of the Input XSL window.

XPath Query Analyser:-

Option | When Checked/Changed
Show XPath Query Analyser | XPath Query Analyser window is visible.
Query Language | Determines the current query language to be used when executing queries in the XPath Query Analyser. The current query language is shown on the XPath Query Analyser statusbar.

Input XML Window:-

Option | When Checked/Changed
Visible | Input XML window is visible.
Toolbar | Input XML toolbar is visible on the Input XML window.
Statusbar | Statusbar on the Input XML window is visible.
Docked | Sets the Input XML window docked within the main IDE window. If this option is un-checked the Input XSL window is undocked from the main IDE.
Always show window on opening XML file | The Input XML window is always made visible and brought to the top of other windows when an XML document is opened.
View mode | Determines the current view mode of the Input XML window.

Output Window:-

Option | When Checked/Changed
Visible | Output window is visible.
Toolbar | Output toolbar is visible on the Output window.
Always show window on transform | The Output window is always made visible and brought to the top of other windows when a successful transformation is executed.
View mode | Determines the current view mode of the Output window.


Environment - Output

Environment Options - Output tab

The options on this tab determine how the output (especially HTML transformation output) is displayed. By controlling the output path the HTML can be displayed correctly with relative hrefs finding their intended target.

Output Path options

Option | When Checked/Changed
Use Input XSL path | The output is treated as though it exists in the same directory as the input XSL stylesheet file. If the current XSL stylesheet is a new file (untitled) the output is treated as though it existed in the windows temporary directory.
Use specified path... | The output is treated as though it exists in the specified directory. Use the path entry to specify this directory.
Use Windows temp directory | The output is treated as though it exists in the windows temporary directory.

Output Browser/Display options

Option

When Checked/Changed

Silent

Alerts and message boxes generated by script in the output HTML are not displayed.

Offline

Requests for remote link files are ignored.

Use external (default) output viewer

With this option set the output is re-directed to the default application for display in browser (including rendered SVG & FO) view modes.

This option is useful if you want to test HTML output in a different default browser (e.g. NetScape) or if your output HTML contains complex script that may require debugging.

When the output is placed into browse view mode the output is saved to a temporary file and loaded into the browser (Xselerator removes all temporary files when they are no longer used or when Xselerator is shut down). The directory to which these temporary files are saved will have an effect on how the HTML file is displayed in the browser - as relative paths in the HTML (e.g. in img href attributes) can only be resolved, and hence the image displayed, if the file is loaded from the correct directory. This feature of Xselerator is designed to allow maximum preview capabilities during testing of transformations.


Environment - Debugger

Environment Options - Debugger tab

This tab defines the controlling options for debug sessions:-

Session Options:-

Option | When Checked/Changed
Stop on output elements | Debugger stops on output elements when stepping through. When the debugger stops on an output element the actual attribute values of the element are displayed. This option has no effect on <xsl:element> elements.
Stop before <xsl:for-each> to examine selected nodes | Debugger always stops on <xsl:for-each> elements - even when the select returns no matching nodes. This allows you to see which nodes have been selected - or to see when the <xsl:for-each> will not be executed because no nodes were selected by the select expression.
Update displays during run to end/run to breakpoint | When run to breakpoint is selected the displays are updated for all elements as the debugger steps through to find the next breakpoint. When this option is checked the debug displays and editor displays will update continuously as the debugger executes each step until a breakpoint is encountered. Using this option will impact the speed at which Xselerator will find the next breakpoint. Some users may find this continuous display updating uncomfortable or unwanted.

NOTE: The session options can be changed during an active debug session in the Debugger window.

Pre-Session Options:-

Option

When Checked/Changed

Include (debug) XSLT built-in rules

If encountered, the built-in XSLT rules are stepped into by the debugger. When a built-in rule is stepped into the debugger clearly displays that the template is a built-in rule and steps through the code within the built-in rule template.

Show incremental output

As the debugger steps through the output is built incrementally - showing the transformation result of each individual output command. This option also allows output in the output editor to be traced back to the XSL that generated it (see also Output editor context menu).

Step on explicit text output

The debugger will step on explicit text outputs in the XSLT. For example, in the following XSLT code:-

  <xsl:template match="/">

    This is explicit output text

    <xsl:value-of select="."/>

    <xsl:text>This is NOT explicit output text</xsl:text>

  </xsl:template>

When the debugger encounters the This is explicit output text it will stop as though this were a steppable statement.

Explicit output text will be stepped even when it is within an XSL variable content. The only exception to this is explicit text within an <xsl:text> element - as this element can only contain text and the debugger will already step on the <xsl:text> element itself.

Show debug compiler progress

When a debug session is started a compiler progress window appears showing the status and progress of the debug compiler prior to the debug session starting. The debug compiler progress window also allows you to terminate the compiler prior to completion.

Possible infinite and maximum template recursion checking

When compiling the XSLT for debugging the debugger will check for possible infinite recursion. Possible infinite recursion is deduced when the debugger compiler finds that a template is called recursively and where no parameter values have changed and the context node is unchanged.

Maximum template recursion checks when a template is called recursively to a given maximum depth - this is provided as an option as some transformations engines have stack limits that need to be checked for. The maximum recursion depth is set by the Max depth setting - set this value to 0 (zero) if you do not want maximum recursion depth checking to occur.

Debug externals

The debugger steps into external stylesheet templates (i.e. stylesheets specified by <xsl:include> and <xsl:import>).

When this option is set you can choose which stylesheets will be stepped into according to the following options:-

Use (step into) only loaded stylesheets

Only stylesheets that are currently open in Xselerator when the debug sessions starts will be stepped into.

Note: This option is disabled if the Include (debug) XSLT built-in rules option is also turned on. This is because when built-in rule templates are to be stepped into Xselerator must correctly assess their import precedence - which can only be done if all stylesheets in the import/include tree are incorporated into the debug session compile.

Automatically load imported/included stylesheet

On compiling the debug session Xselerator will automatically open all stylesheets specified in <xsl:include> and <xsl:import> elements throughout the entire import/include tree.

NOTE: The pre-session options can not be changed during a active debug session - they must be set in this dialog prior to starting a debug session. The current settings of these options are shown, for information purposes only, in the Debugger window.


Environment - Recent Files

Environment Options - Recent Files tab

This tab allows control over the maximum number of recent files remembered and how recent files are displayed.

Remember last ... XSL files determines the number of recently opened XSL files that are stored and displayed on the open recent file menus. This value must be between 2 and 36. Use the Clear Recent XSL Files button to clear current recent XSL files from the stored list.

Remember last ... XML files determines the number of recently opened XML files that are stored and displayed on the open recent file menus. This value must be between 2 and 36. Use the Clear Recent XML Files button to clear current recent XSL files from the stored list.

Show full path of recent files determines whether the full file path of recent files is shown on the recent files menus. As file paths can be extremely long this option, when turned off, allows the menu to only display the actual file name excluding the path.

Recent files are stored in a stack inside Xselerator. When a file is opened that name is placed at the top of the stack so that it is the first displayed on the recent files menu. If the stack exceeds the size specified by the options described above the last item is lost. Xselerator remembers recent files when it is shut down so that when restarted the recent files can be restored.


Environment - Transformation

Environment Options - Transformation tab

This tab shows the currently set up transformation engines. The transformation engines are shown in the list with the currently selected engine checked. The currently selected engine can be changed by checking the appropriate item in the list (the currently selected engine can also be selected from the drop down menu of the Transform button).

On selecting a transformation engine from the list the configuration of this engine is shown in the Transformation Engine Details.

New transformation engines can be set up by pressing the Add button and existing transformation engine configurations can be amended by pressing the Modify button. Press the Delete button to remove a transformation engine that is no longer required or used (the MSXML3 and, if detected, MSXML4 options may not be deleted or modified). Note that changes to all transformation engines do not take effect until and unless the OK button of the Environment Options dialog is pressed.

When the Add or Modify button is pressed the Add/Modify Transformation Engine dialog is shown - where the engine configuration may be entered or amended.

When Xselerator calls external transformation engines (i.e. other than the MSXML3 or MSXML4 parsers) temporary files containing the input XML and XSL are created. These files are deleted after the engine has been called by Xselerator. Xselerator also instructs the engine to place the output into a further temporary file - Xselerator looks for this temporary output file in order to determine if the transformation was successful. After loading the content of the temporary output file, Xselerator deletes this file.


Add/Modify Transformation Engine

This dialog allows you to add or modify the configuration of an external transformation engine:-

Transformation Engine:-

Option | When Checked/Changed
Menu name | Is the menu name for the transformation engine - as displayed in the drop down menu of the Transform button.
Executable | Specifies the executable file (.exe or .bat or any other executable file type) that is to be executed for this transformation engine. This entry cannot be edited directly - use the open folder button to point to the executable file.
Parameters | Specifies the parameters that are passed to the executable. The parameters entry is made up of several tokens that Xselerator looks for and replaces with appropriate values when calling the executable (the special tokens that may be specified in the parameters entry are described below).
Maintain paths | Allows Xselerator to preserve the absolute path of the stylesheet when running the external transformation engine - thus allowing relative paths specified in the href attribute of <xsl:include> and <xsl:import> elements to be valid.
Use short filenames and paths | Ensures that external transformation engines not capable of receiving windows long file names as parameters are only passed short file names. When this option is unchecked Xselerator passes long file names enclosed within double quote marks (").
Capture error output | Allows errors generated by the external transformation engine (that would normally be output to the console) to be displayed within Xselerator.
Show report output | Allows Xselerator to display any warnings and/or transformation statistics generated by the external transformation engine to be displayed - even after a successful transformation.

The Parameters entry is a string consisting of special tokens which Xselerator replaces with appropriate values when calling the external transformation engine. The entry may also contain explicit parameters that are to be passed to the transformation engine - such as special options recognised by the engine. (For example configurations of several commonly used transformation engines please see - Example Transformation Engine configurations)

The tokens that can be specified in this string are as follows:-

Token

Representation

%out%

Position in the parameters where the output filename is specified. This marker MUST be present (Xselerator can only support transformation engines that can write the output to a specified file rather than the console output).

%xml%

Position in the parameters where the input XML filename is specified. This marker MUST be specified.

%xsl%

Position in the parameters where the input XSL filename is specified. This marker MUST be specified.

%param[]%

Position in the parameters where stylesheet parameter values are specified. This marker is optional - only specify this marker for transformation engines that support the passing of stylesheet parameters.

Within the square brackets of this marker the name and value tokens must be specified. The name token specifies how the parameter name is specified - the token is replaced with each parameter name when the engine is called. The value token specifies how the parameter value is specified - the token is replaced with actual parameter value when the engine is called.

Where parameters must be separated by a space (or other character) then this must be specified within the square brackets of the token so that multiple calling parameters are correctly delimited.

If the parameter name in the command line must be prefixed with a $ sign then this token should be specified as %param[ $name=value]%

If the parameter value must be enclosed in quotation marks then this token should be specified as %param[ name="value"]%

%mode[]%

Position in the parameters where start mode is specified. This marker is optional - only specify this marker for transformation engines that support stylesheet start modes.

Within the square brackets of this marker any required option switches may be placed along with the token %mode% - which is replaced with the actual start mode (as set in the Stylesheet Parameters & Mode dialog). If no start mode is specified this part of the parameters is removed when calling the external transformation engine.


Example Transformation Engine configurations

The following settings are example configurations for commonly used transformation engines. These settings can be entered into the Add/Modify Transformation Engine dialog in order to configure these engines.

(Note: Example path settings below displayed in grey should be replaced with the path appropriate to your machine)

Xalan-J (Apache Software Foundation)

[Java Version 2.2.D14 http://xml.apache.org/xalan-j/index.html]

Menu name | Xalan-&J 2.2
Executable | C:\jdk1.3.1_01\jre\bin\java.exe
Parameters | -jar "C:\XSLTEngines\Xalan\Java\xalan-j_2_2_D14\bin\xalan.jar" -IN %xml% -XSL %xsl% -OUT %out%%param[ -PARAM name "value"]%
Maintain paths | Yes
Use short filenames and paths | No
Capture error output | Yes
Show report output | No

Xalan-C (Apache Software Foundation)

[C++ Version 1.2 http://xml.apache.org/xalan-c/index.html]

Menu name | Xalan-&C 1.2
Executable | C:\XSLTEngines\Xalan\C\Build\Win32\VC6\Release\TestXSLT.exe
Parameters | -IN %xml% -XSL %xsl% -OUT %out%%param[ -PARAM name "'value'"]%
Maintain paths | Yes
Use short filenames and paths | No
Capture error output | Yes
Show report output | Yes

Saxon 7.0 (Michael Kay)

[Version 7.0 http://saxon.sourceforge.net]

Menu name | Saxon 7.0
Executable | C:\jdk1.3.1_01\jre\bin\java.exe
Parameters | -jar "C:\XSLTEngines\Saxon7\Saxon7.jar" -o %out% %xml% %xsl% %param[ name="value"]%
Maintain paths | Yes
Use short filenames and paths | No
Capture error output | Yes
Show report output | No

Instant Saxon (Michael Kay)

[Version 6.5 http://saxon.sourceforge.net]

Menu name | Instant Saxon
Executable | C:\XSLTEngines\Saxon\Instant6.5\saxon.exe
Parameters | -o %out% %xml% %xsl% %param[ name="value"]%
Maintain paths | Yes
Use short filenames and paths | No
Capture error output | Yes
Show report output | Yes

XT (James Clark)

[Version 19991105 ftp://ftp.jclark.com/pub/xml/xt.zip]

Menu name | XT
Executable | C:\XSLTEngines\XT\xt.exe
Parameters | %xml% %xsl% %out% %param[ name="value"]%
Maintain paths | Yes
Use short filenames and paths | No
Capture error output | Yes
Show report output | Yes

Sablotron (Ginger Alliance Ltd.)

[Version 0.71 http://www.gingerall.com/charlie/ga/xml/d_sab.xml]

Menu name | Sablotron
Executable | C:\XSLTEngines\Sablotron\v071\sabcmd.exe
Parameters | %xsl% %xml% %out%%param[ $name="value"]%
Maintain paths | No
Use short filenames and paths | No
Capture error output | Yes
Show report output | Yes

MSXSL.exe

[Microsoft command line utility http://msdn.microsoft.com/downloads/sample.asp?url=/msdn-files/027/001/485/msdncompositedoc.xml&frame=true]

(this example should not be needed as Xselerator is able to call both MSXML3 and MSXML4 parsers directly)

Menu name | MSXSL Command Line
Executable | C:\XSLTEngines\Microsoft\msxsl.exe
Parameters | %xml% %xsl% -o %out% %mode[ -m %mode%]%%param[ name="value"]%
Maintain paths | Yes
Use short filenames and paths | No
Capture error output | Yes
Show report output | Yes

NOTE: All of the above configurations have been tested with the appropriate versions of the specified engines - for best results copy and paste from this page into the Add/Modify Transformation Engine dialog and change paths where appropriate.


Environment - XSL-FO Rendering

This tab allows you to configure the FOP (FO Processor) that Xselerator should use when rendering XSL-FO in the output window.

Option | When Checked/Changed
No XSL-FO Rendering available | Set this option when no FOP is installed.
XSL-FO Rendering | Set this option to enable FO rendering and configure the FOP (FO Processor) configuration options.
Executable | Specifies the executable file (.exe or .bat or any other executable file type) that is to be executed in order to run the FOP. This entry cannot be edited directly - use the open folder button to point to the executable file.
Command line | Specifies the parameters that are passed to the executable. The parameters entry is made up of the fixed parameters that are to be passed to the FOP executable plus two tokens that Xselerator looks for and replaces with appropriate values when calling the executable:- %in% - the input XSL-FO file to be passed to the FO Processor %out% - the file where the rendered output is to be placed (see below for typical settings for the Apache FOP configuration)
Render engine displays output | Reserved for future use - Xselerator does not currently support FO Processors that display the rendered output themselves.
Output extension | The output type (file extension) generated by the FO Processor
Always display output in external (default) application | Reserved for future use (this option is disabled and checked on) - Xselerator currently always displays the rendered output in the default external application for the selected output file extension (e.g. if the output extension is selected as .pdf the output will be displayed in Adobe Acrobat Reader).
Show render engine report output | Allows Xselerator to display any warnings and/or rendering statistics generated by the FO Processor.

The following section shows the example settings for configuring the Apache FOP (Note: Example path settings below displayed in grey should be replaced with the path appropriate to your machine)

Apache FOP (Apache Software Foundation)

[Version 0.20.3 http://xml.apache.org/fop/index.html ]

Executable | C:\jdk1.3.1_01\jre\bin\java.exe
Command line | -cp C:\ApacheFOP\build\fop.jar;D:\ApacheFOP\lib\batik.jar;C:\ApacheFOP\lib\xalan-2.0.0.jar;C:\ApacheFOP\lib\xerces-1.2.3.jar;C:\ApacheFOP\lib\avalon-framework-4.0.jar; C:\ApacheFOP\lib\logkit-1.0b4.jar;C:\ApacheFOP\lib\jimi-1.0.jar org.apache.fop.apps.Fop -fo "%in%" -pdf "%out%"
Render engine displays output | No
Output extension | pdf
Always display output in external (default) application | Yes
Show render engine report | Yes


Envrionment - XSL Help

Environment Options - XSL Help tab

This tab allows Xselerator to be made aware of, and use, the Microsoft MSXML SDK help files.

To use the MSXML SDK help files from within Xselerator check the Use MSXML SDK Help option and specify the path and file for the two versions of the SDK (the file name for the MSXML 3.0 SDK is xmlsdk30.chm, the file name for the MSXML 2.5 SDK is xmlsdk25.chm). If you do not have these files installed on your machine then they can be downloaded from the Microsoft MSDN website.

If you have checked the Use MSXML SDK Help option and specified the locations of the SDK help files use Ctrl-F1 in the XSL editor to show the SDK help information for the XSL element currently positioned on. The Ctrl-F1 key may also be used in the Query Builder dialog and the Interactive XSL dialog.


Envrionment - HTML Tidy

Environment Options - HTML Tidy tab

This tab defines the HTML-Tidy options used when performing tidy on the Input XML, Input XSL or Output. The options on this tab are only enabled when Xselerator detects that you have TidyCOM installed on your machine - if you do not have this component installed it can be downloaded from the authors web-site.

Additional to the normal HTML-Tidy options Xselerator provides the following features:-

Option | Description
Auto-tidy on load | Set this option to determine how HTML files loaded as XSL are tidied.
Add stylesheet | Set this option to determine whether an <xsl:stylesheet> element is added to a HTML file when it is loaded as XSL.

For more information on the HTML-Tidy options please refer to http://www.w3.org/People/Raggett/tidy/


Samples

Xselerator comes with a comprehensive selection of example stylesheets, libraries and technique description articles. The examples and libraries can be accessed by using the links provided in the help topics below here.


Examples

Xselerator comes with a comprehensive selection of example stylesheets. These stylesheets are broken down into the following topic areas:-

Note: Within each topic are listed the stylesheets - you can click on each example within this help file to open the stylesheet and associated test data XML in Xselerator.

Data Formatting

Filtering/Sorting

Grouping

HTML

Table Formatting

XSL-FO (Formatting Objects)

SVG (Scalable Vector Graphics)

Multiple Data Sources

Multi-Lingual

Non-XML

One to Many

One to Many to Many

Recursion

XML to XML

XSLT Elements

Miscellaneous and Advanced


Data Formatting

Examples - Data Formatting

Note: Click on links to open the example XSL and XML files in Xselerator

StringFuncs | This stylesheet demonstrates how various string functions (string-length, substring-before, substring-after, concat) can be used to extract specific portions of your string data
NumberFuncs | This stylesheet demonstrates how various numeric formatting masks ("000.00", "$#00%", "###0.00") can be used to display numeric data in various output formats.


Filtering/Sorting

Examples - Filtering/Sorting

Note: Click on links to open the example XSL and XML files in Xselerator

ConcatDDMMYYYY | This stylesheet demonstrates how to use string functions to sort date values. As you might know, there is no built in date sorting in XSLT. In this example, we are using substring and concatenation functions to elements in order or Day, Month, Year
ConcatHHMMSSAP | This stylesheet demonstrates how to use string functions to sort date/time values. As you might know, there is no built in "time" sorting in XSLT. In this example, we are using substring and concatenation functions to sort elements in order of Hour, Minute, Second, AM/PM
ConcatMMDDYYYY | This stylesheet demonstrates how to use string functions to sort date/time values. As you might know, there is no built in date sorting in XSLT. In this example, we are using substring and concatenation functions to sort elements in order of Month, Day and Year (a very common sorting requirement)
DrinkParams | This stylesheet demonstrates filtering records based on a value passed in as a parameter. In this example, we are extracting only the records that match the parameter passed in.
DrinksSorted | This stylesheet demonstrates parameter based sorting. In this example, both the sort order and sort field are passed in as parameters. Note: This is not as easy as it might appear on the surface and is one of the most common xslt requirements.
SubstringDDMMYYYY | This stylesheet demonstrates how to use the substring function to sort a date. In this example, we are using a 3 part sort key for month, day and year. Since we are breaking it into 3 sections, we can easily control the order (ascending or descending) for each part of our date. In this example, we are sorting by Day, Month, Year
AlternativeOrdering | This stylesheet demonstrates how to use sorting based on a value derived from a value in the input XML.
AlternativeOrdering2 | This stylesheet demonstrates how to use sorting based on a defined sort order precedence.
Dates1 (d/m/y) Dates2 (m/d/y) Dates3 (d Month yyyy) | Various stylesheets that demonstrate how non-ISO date formats can be sorted


Grouping

Examples - Grouping

Note: Click on links to open the example XSL and XML files in Xselerator

GroupProdMuenchian | Using the Muenchian Method to group an XML documents of "Products" by Region, then by Product Name.
GroupProdMuenchianWithIDs | Using the same Muenchian Method as above, except with displays of Internal IDs to demonstrate the information that is used in the generate-id() function.
GroupProdHolman | This method demonstrates a technique for grouping that does not use the key() function. This is especially useful for XSLT processors where the key() function is not supported.
BookTitleContainsWord | This stylesheet demonstrates how to group elements based on the occurence of specific words in an elements text.
MuiltpleKeys (1) MultipleKeys (2) | This stylesheet shows the use of the key() function in conjunction with multiple <xsl:key> definitions to perform complex groupings.


HTML

Examples - HTML

Note: Click on links to open the example XSL and XML files in Xselerator

ComboPull1 | Loading an HTML combo box from xml (Using the Pull approach). This stylesheet demonstrates how to load the contents of an HTML combo box as well as setting the default value. In this example, we store the default value in a variable to make the code a bit more reusable.Also note that we are using the Pull method to extract data from our xml document. The pull method is an approach where the use of templates is minimized and data is accessed by "pulling" it from our xml document.
EmpAttrTextBoxPull1 | Generating a text box from xml (pull method). This series of textboxes is generated using the pull method of extracting xml attributes. Each element will generate a text box and the attributes will allow us to format the text box according to the attribute values. Also note that we are using the Pull method to extract data from our xml document. The pull method is an approach where the use of templates is minimized and data is accessed by "pulling" it from our xml document.
EmpElemTextBoxPull1 | Generating a text box from xml(Pull Method). This series of textboxes is generated using the pull method of extracting xml elements. Each element will generate a text box. Also note that we are using the Pull method to extract data from our xml document. The pull method is an approach where the use of templates is minimized and data is accessed by "pulling" it from our xml document.
EmpElemTextBoxPush1 | Generating a text box from xml (push method). This series of textboxes is generated using the pull method of extracting xml elements. Each element will generate a text box. Also note that we are using the "Push" method to transform data from our xml document. The Push method is an approach where templates are used extensively. Using the "Push" method, we are essentially defining templates for each of our xml elements and "Pushing" our xml data towards it.
EmpElemTextBoxPush2 | Generating a text box from xml (push method). This series of textboxes is generated using the pull method of extracting xml elements. Each element will generate a text box. Also note that we are using the "Push" method to transform data from our xml document. The Push method is an approach where templates are used extensively. Using the "Push" method, we are essentially defining templates for each of our xml elements and "Pushing" our xml data towards it.
LinksPull1 | Loading an HTML combo box from xml (Using the Push approach). This stylesheet demonstrates how to load the contents of an HTML combo box as well as setting the default value. In this example, we store the default value in a variable to make the code a bit more reusable. Also note that we are using the "Push" method to transform data from our xml document. The Push method is an approach where templates are used extensively. Using the "Push" method, we are essentially defining templates for each of our xml elements and "Pushing" our xml data towards it.
LinksPull2 | Creating Hyperlinks from xml (Using the Pull method). This stylesheet demonstrates how to create hyperlinks from an xml document. Also note that we are using the Pull method to extract data from our xml document. The pull method is an approach where the use of templates is minimized and data is accessed by "pulling" it from our xml document.
LinksPush1 | Creating Hyperlinks from xml (Using the Push method). This stylesheet demonstrates how to create hyperlinks from an xml document. Also note that we are using the "Push" method to transform data from our xml document. The Push method is an approach where templates are used extensively. Using the "Push" method, we are essentially defining templates for each of our xml elements and "Pushing" our xml data towards it.
RadioPull1 | Creating Hyperlinks from xml (Using the Push method). This stylesheet demonstrates how to create hyperlinks from an xml document. Also note that we are using the "Push" method to transform data from our xml document. The Push method is an approach where templates are used extensively. Using the "Push" method, we are essentially defining templates for each of our xml elements and "Pushing" our xml data towards it.
RadioPush1 | Generating radio buttons from xml (Using the Push method). This stylesheet demonstrates how to create radio buttons from an xml document. Also note that we are using the "Push" method to transform data from our xml document. The Push method is an approach where templates are used extensively. Using the "Push" method, we are essentially defining templates for each of our xml elements and "Pushing" our xml data towards it. This stylesheet demonstrates how to create radio buttons from an xml document. Also note that we are using the Pull method to extract data from our xml document.The pull method is an approach where the use of templates is minimized and data is accessed by "pulling" it from our xml document.


Table Formatting

Examples - Table Formatting

Note: Click on links to open the example XSL and XML files in Xselerator

AlternatingRows | This XSLT file will display rows of data in an HTML table, displaying every alternate row in a different color.
AlternatingCols | This XSLT file will display rows of data in an HTML table, displaying every alternate column in a different color


XSL-FO

Examples - XSL-FO (Formatting Objects)

Note: Click on links to open the example XSL and XML files in Xselerator

FO

This stylesheet demonstrates producing XSL-FO from data XML.


SVG

Examples - SVG (Scalable Vector Graphics)

Note: Click on links to open the example XSL and XML files in Xselerator

SimpleBar | This stylesheet demonstrates producing a simple SVG bar graph from XML data.
SimpleStackedBar | This stylesheet demonstrates producing a simple stacked bar graph from XML data.
SimplePieGraph | This stylesheet demonstrates producing a simple pie graph from XML data.


Multiple Data Sources

Examples - Multiple Data Sources

Note: Click on links to open the example XSL and XML files in Xselerator

DocumentAsAttributeXML | Combining Multiple XML Documents using document names as attributes. This stylesheet demonstrates how to combine multiple XML documents into a single data source. In this example, the name of the xml document is stored as an attribute value. The document() function is used in the stylesheet to create an instance of each xml document.The end result of the transformation is a combination of all of the input XML documents into a single XML document.
DocumentWithNodeSetHTML | Combining Multiple XML Documents and accessing them through the document function. This stylesheet demonstrates how to combine multiple XML documents into a single data source. In this example, the document names are stored as an attribute value. The stylesheet that combines the data first accesses each XML Document name using the document() function (demonstrating also how an xPath query can be applied to the document) and displays each document as HTML using the DisplayProds template. Note: This example was originally inspired by Kurt Cagle (http://www.KurtCagle.net).
DocumentWithNodeSetXML | Combining Multiple XML Documents and accessing them through the document function. This stylesheet demonstrates how to combine multiple XML documents into a single data source. In this example, the document names are stored as an attribute value. The stylesheet that combines the data first accesses each XML Document name using the document() function (demonstrating also how an xPath query can be applied to the document) and displays each document as HTML using the DisplayProds template. Note: This example was originally inspired by Kurt Cagle (http://www.KurtCagle.net).
ParsedEntityHTML | Combining Multiple XML Documents as a Parsed Entity. This example demonstrates how to combine multiple XML documents as a reference to one or more parsed entities. In this example, each XML document is represented as a parsed entity, which is referenced in the dtd. The entities are combined in the ParsedEntity.xml document and are transformed to HTML using the ParsedEntity.xsl file, which also uses the DisplayProds template to format the HTML data.
ParsedEntityXML | Combining Multiple XML Documents as a Parsed Entity. This example demonstrates how to combine multiple XML documents as a reference to one or more parsed entities. In this example, each XML document is represented as a parsed entity, which is referenced in the dtd. The entities are combined in the ParsedEntity.xml document and are transformed to HTML using the ParsedEntity.xsl file, which also uses the DisplayProds template to format the HTML data.
CompareXML | This stylesheet demonstrates comparing two XML documents of same structure and producing an output defining the differences between the two.


Multi-Lingual

Examples - Multi-Lingual

Note: Click on links to open the example XSL and XML files in Xselerator

Method1 | Using a seperate XSLT Stylesheet for each language. Note that this method is quite easy to implement, simply create a new XSLT file for each language. One word of warning, using this approach could lead to maintenance headaches when the pages require modifications.
Method2 | Using lang() with a single translation document. In this example, a single XML file is used to contain all of the translation elements. The xslt lang() function and the xml:lang attribute are used to determine what language to tranlate to.
Method3 | Using xsl:lang with multiple XML translation document (each stored in a different, language-specific, directory). In this example each translation document is kept in a seperate language-specific directory.
Method4 | Using translations inline, when needed. In this example, different elements are translated in-line using the xsl:choose element. This techniques is used best for documents that require only small sections to be translated. If used too frequently, it could lead to difficult to read XSLT documents.


Non-XML

Examples - Non-XML

Note: Click on links to open the example XSL and XML files in Xselerator

FixedLengthTextToHTML | This stylesheet demonstrates transforming a fixed length text file as an HTML table. In this example we are using substring functions to create an HTML document from a text file based on the start and end positions of the data. Additionally, we are calling a template named TrimTrailing to remove any extra traling spaces from our table.
FixedLengthTextToXML | This stylesheet demonstrates transforming a fixed length text file as XML. In this example we are using substring functions to create an XML document from a text file based on the start and end positions of the data. Additionally, we are calling a template named TrimTrailing to remove any extra traling spaces from our document.


One to Many

Examples - One to Many

Note: Click on links to open the example XSL and XML files in Xselerator

Company1MPull | This stylesheet demonstrates a basic 1 to many relationship of Company to Employees. Also note that we are using the Pull method to extract data from our xml document. The pull method is an approach where the use of templates is minimized and data is accessed by "pulling" it from our xml document
Company1MPush | This stylesheet demonstrates a basic 1 to many relationship of Company to Employees. Also note that we are using the "Push" method to transform data from our xml document. The Push method is an approach where templates are used extensively. Using the "Push" method, we are essentially defining templates for each of our xml elements and " Pushing " our xml data towards it.
Products1MPull | This stylesheet demonstrates a basic 1 to many relationship of Catalog to Products. Also note that we are using the Pull method to extract data from our xml document. The pull method is an approach where the use of templates is minimized and data is accessed by "pulling" it from our xml document.
Products1MPush | This stylesheet demonstrates a basic 1 to many relationship of Catalog to Products. Also note that we are using the "Push" method to transform data from our xml document. The Push method is an approach where templates are used extensively. Using the "Push" method, we are essentially defining templates for each of our xml elements and "Pushing" our xml data towards it.


One to Many to Many

Examples - One to Many to Many

Note: Click on links to open the example XSL and XML files in Xselerator

Company1MMPull | Simple One-to-Many-to-Many (Using the Pull method). This stylesheet demonstrates a 1-M-M relationship of Company to Category to Employees. Also note that we are using the Pull method to extract data from our xml document. The pull method is an approach where the use of templates is minimized and data is accessed ny "pulling" it from our xml document
Products1MMPush | Simple One-to-Many-to-Many (Using the Push method). This stylesheet demonstrates a 1-M-M relationship of Company to Category to Employees. Also note that we are using the "Push" method to transform data from our xml document. The Push method is an approach where templates are used extensively. Using the "Push" method, we are essentially defining templates for each of our xml elements and "Pushing" our xml data towards it.


Recursion

Examples - Recursion

Note: Click on links to open the example XSL and XML files in Xselerator

LineFeed to BR | This Stylesheet demonstrates how to recursively replace a LineFeed character with a HTML <BR> character
Loop | Recursively displaying text repeated 3 times.
Max | This stylesheet demonstrates how to use recursion to find the maximum element in a group of element. In this example, we are determing the highest temperature out of a group of measurements.
Min | This stylesheet demonstrates how to use recursion to find the minimum element in a group of element. In this example, we are determing the lowest temperature out of a group of measurements.
Replace | Using recursion to search and replace strings.
ShowSplit | Spliting One element into many. This stylesheet demonstrates recursion by seperating the contents of a single element named "computerlanguages" into a number of child elemements named "computerlanguage".
ShowTrim | Employee listing with both leading and trailing spaces removed. This stylesheet demonstrates recursion by removing the leading and trailing spaces from an element. Note: Since the output is in HTML, you will need to view the source of the HTML to see the differences bewtween the trimmed and non-trimmed values.
ShowTrimL | Employee listing with leading spaces removed.. This stylesheet demonstrates recursion by removing the leading spaces from an element. Note: Since the output is in HTML, you will need to view the source of the HTML to see the differences bewtween the trimmed and non-trimmed values.
ShowTrimR | Employee listing with trailing spaces removed.. This stylesheet demonstrates recursion by removing the leading spaces from an element. Note: Since the output is in HTML, you will need to view the source of the HTML to see the differences bewtween the trimmed and non-trimmed values.


XML to XML

Examples - XML to XML

Note: Click on links to open the example XSL and XML files in Xselerator

AttrToElem | Converting attributes to Elements. This stylesheet will convert an xml file that is attribute-based to one that is element-based. In this stylesheet, the original customer elements are represented as a series of attributes. The output of this transformation will be a number of child elements, one for each attribute.
CreateAttrSubset | Creating attributes from a subset of elements. This stylesheet will create an output of a subset of attributes. Each element generated will contain only two attributes from the original input element (CompanyName and CustomerID).
CreateSubsetFiltered | Creating attributes from a subset of elements. This stylesheet will create an output of a subset of attributes. Each element generated will contain only two attributes from the original input element (CompanyName and CustomerID).
CreateSubsetSorted | Creating attributes from a sorted set of elements. This stylesheet will create an output of attributes from a set of sorted elements. Each element generated will contain only specific attributes for customers sorted by countryname.
CustomerElemToAttr | Converting Elements to Attributes. This stylesheet will convert an xml file that is element-based to one that is attribute-based. In this stylesheet, the original customer elements will be transformed to attributes.
StatesElemToAttr | Converting Elements to Attributes. This stylesheet will convert an xml file that is element-based to one that is attribute-based. In this stylesheet, the original state elements will be transformed to attributes.


XSLT Elements

Examples - XSLT Elements

Note: Click on links to open the example XSL and XML files in Xselerator

CallTemplatesByName | Calling Templates by name. This stylesheet demonstrates the use of xsl:call-template() by calling multiple templates by name to display different HTML views of xslt output.
CopyOfEmployees | Copying Elements. This stylesheet processes a set of XML elements and displays the result in XML. The copy-of element will copy the results of each employee element into the result tree. In this example, we are taking the original xml elements and creating a new xml document sorted by name.
CopyOfInternetEmployees | Copying Elements with a filter. This stylesheet processes a set of XML elements and displays the result in XML. An XPath statement can be applied to the select to copy selected elements to the result tree. In this example, we are outputting only the elements that contain employee elements whose department element = "Internet"
CreateEmployeeAttributes | Converting attributes to Elements. This stylesheet processes a set of XML elements and uses the xsl:attribute element to generate a new xml file containing atrributes from the original xml document as well as new attributes created with xslt functions like a substring-before, substring-after and others.
CreateEmployeeElements | Copying Elements. This stylesheet processes a set of XML elements as input and creates a new set of xml elements as output. In this example we are using the several xslt functions along with xsl:element to create two new xml elements(firstname and lastname) from our input as well as creating a third element directly from the xml input (department).
EmployeesToHTML | Displaying transformation output as HTML. This stylesheet processes a set of XML elements and displays the result in HTML. This is accomplished using the output method of HTML.
EmployeesToText | Displaying transformation output as Text. This stylesheet processes a set of XML elements and creates a resulting text file. This is accomplished using the output method of Text as shown above. In this example, we are taking the original xml elements and creating delimited text document sorted by name.
EmployeesToXML | Displaying transformation output as XML. This stylesheet processes a set of XML elements and displays the result in XML. This is accomplished using the output method of XMl as shown above. In this example, we are taking the original xml elements and creating a new xml document sorted by name.
ListEmployeesByDepartment | Listing Employees per department/ This stylesheet demonstrates the use of xsl:variable to create an HTML table for elements for a specific department. The department that will be used for selection will be contained in a variable name $department.
ListEmployeesTopLevel | Using Top-level parameters. This stylesheet demonstrates the use of xsl:param to create an HTML table for elements for a specific department. Top-level parameters can be used for the stylesheet in cases where the same stylesheet will be called externally with different information.
ListEmployeesWithParam | Passing parameters to templates. This stylesheet demonstrates the use of the xsl:param element when passing parameters to a template.
SortByAmount | Sorting elements by Amount. This stylesheet demonstrates the use of xsl:sort() by displaying employee information sorted by amount.
SortByDate | Sorting elements by Date.This stylesheet demonstrates the use of xsl:sort() by displaying employee information sorted by date.
SortByName | Sorting elements by Name. This stylesheet demonstrates the use of xsl:sort() on alphabetic text by displaying employee information sorted by name.
SortMultiKey | Sorting elements by a Multi-part key. This stylesheet demonstrates the use of xsl:sort() by sorting Employee Information with Multi-part Keys.
SpokenLanguageMessage | Displaying a message to the user.This stylesheet demonstrates the use of xsl:message to display a message to the user based on a condition. In this stylesheet, an user-friendly error message is displayed when a language that can not be handled is found.
SpokenLanguages2 | Translating spoken language acronyms. This stylesheet demonstrates the use of xsl:choose by converting the spoken language acronym stored in the "nativelanguage" element to the correct term displayed in an HTML table. For cases where the language translation is unknown, the actual acronym is used.
BuiltInRules (1) BuiltInRules (2) | These stylesheets demonstrate the XSLT built-in rule templates.


Miscellaneous and Advanced

Examples - Miscellaneous and Advanced

Note: Click on links to open the example XSL and XML files in Xselerator

addNewAttribute | Copy elements adding a new attribute.
compareLists | Compare two lists of values and displays the value of any name element not in both lists.
flat2Tree | Convert 'flat' XML to a structured (tree) XML.
genericMinMaxExample | Finding the deepest "tab" element by using a generic max() template.
groupingHeaders groupingPositional groupingPositionalMulti-level | Grouping examples
lookupTablewithKeys | Transforms from one xml into another one using a 'lookup' xml file.
mergeImportedIncluded | Merge imported/included stylesheets into one stylesheet
multicolumn-table | Displays XML in a table with a fixed number of columns.
numberOfDigits | Obtain the number of digits in a number.
outputCount | Shows how to output the total count of items found.
parameterizedSorting | Shows how to call a sorting template and pass everything as parameter.
permutations | Produce all permutations of values in a node-set.
printStructureSorted | Produces a class structure sorted lexicographically.
putInComments | Put selected nodes in comments.
RemoveEmptyNodes | Copy only element nodes (and their children) that have some children themselves so empty element nodes will be removed, even in the case they have attributes.
removeMoreThan2BR | Remove all <br> elements whose position in a sequence of adjacent <br> elements is greater than 2.
RemoveNon-textNodes | Copy only nodes that are text or have descendant text.
Repeat | Efficient repeating.
Reverse (1) | Reverse a given string using the simple head-first recursive approach.
Reverse (2) | Reverse a given string using the "Divide and Conquer" recursive approach.
SuppressAllEmpty | Suppress a section only if all its children elements are empty (or contain only whitespace).


XSLT Libraries

Xselerator comes with several XSLT libraries for performing complex tasks and calculations - in pure XSLT code (no script or extension functions). The libraries currently shipped are as follows:-

datetime_lib.xsl | Example - Produce a calendar in XSLT
 | Includes template functions:- date-add, date-diff, date-time-to-float, date-to-julian-day, day-of-week, first-day-of-year, float-to-date-time, format-date-time, julian-day-to-date, local-to-UTC, local-to-local, named-day-of-week, time-to-float, week-number, week-number-to-date, weeks-in-year, working-year, UTC-to-local
numberutils_lib.xsl | Example - Shows the use of various functions in the library
 | Includes template functions:- Bin2Dec, BinAND, BinNOT, BinOR, BinXOR, BooleanAND, BooleanOR, BooleanXOR, Dec2Bin, Dec2Hex, Hex2Dec
trig_lib.xsl | Example - Shows the trig functions beging used to produce an SVG pie chart
 | Includes template functions:- cos, cot, csc, sec, sin, tan

Note: Click on the links to open the XSLT library stylesheet in Xselerator or click on the Example links to open up a stylesheet and XML that demonstrates the use of each library.


Microsoft MSXML SDKs

The MSXML 3.0 SDK can be downloaded from:-

http://msdn.microsoft.com/code/sample.asp?url=/msdn-files/027/000/542/msdncompositedoc.xml

The MSXML 2.5 SDK can be downloaded from:-

http://msdn.microsoft.com/code/sample.asp?url=/msdn-files/027/001/013/msdncompositedoc.xml

All MSXML/XML related downloads can be found at:-

http://msdn.microsoft.com/downloads/default.asp?URL=/code/topic.asp?URL=/msdn-files/028/000/072/topic.xml


Encodings

(for full reference on Unicode encodings please refer to www.unicode.org )

Currently Xselerator provides support for Unicode UTF-8 and UTF-16 files as well as default support for numerous other encodings. Encoding support may be limited by the encodings supported by your windows version. The following list is the encodings Xselerator supports where underlying windows support for these encodings is present:-

Encoding specifier | Description
UTF-8 | Unicode UTF-8
UTF-16 | Unicode UTF-16 (Big and Little-endian)
UTF-7 | Unicode UTF-7
Windows-1250 x-cp1250 | Central European Windows
Windows-1251 x-cp1251 | Cyrillic Windows
Windows-1252 ASCII latin1 ansi_x3.4-1968 ansi_x3.4-1986 cp367 cp819 csascii ibm367 ibm819 iso-646.irv:1991 iso-646-us iso-ir-100 iso-ir-6 us | Western European Windows
Windows-1253 | Greek Windows
Windows-1254 | Turkish Windows
Windows-1255 hebrew csisolatinhebrew iso-ir-138 | Hebrew Windows
Windows-1256 | Arabic Windows
Windows-1257 | Baltic Windows
Windows-1258 | Vietnamese Windows
Windows-874 | Thai Windows
ISO-8859-1 | Western European ISO
ISO-8859-2 l2 latin2 csisolatin2 iso-ir-101 | Central European ISO
ISO-8859-3 | Latin 3 ISO
ISO-8859-4 | Baltic ISO
ISO-8859-5 | Cyrillic ISO
ISO-8859-6 | Arabic ISO
ISO-8859-7 | Greek ISO
ISO-8859-8 | Hebrew ISO
ISO-8859-9 | Turkish ISO
ISO-8859-15 | Latin 9 ISO
ISO-2022-JP | Japanese JIS
ISO-2022-JP csiso2022jp | Japanese JIS-Allow 1 byte Kana
ISO-2022-KR csiso2022kr | Korean ISO
Shift-JIS csshiftjis cseucpkdfmtjapanese x-euc x-euc-jp x-sjis ms_kanji | Japanese Shift-JIS / Japanese EUC
GB2312 chinese csgb2312 csiso58gb231280 iso-ir-58 gb_2312-80 | Chinese Simplified GB2312
korean iso-ir-149 ksc-5601 ks-c-5601 ks-c-5601-1987 csksc56011987 cseuckr | Korean
Big5 csbig5 x-x-big5 | Chinese Traditional Big5
KOI8-R cskoi8r | Cyrillic KOI8-R
KOI8-U | Cyrillic KOI8-U
EUC-JP | Japanese EUC
EUC-KR | Korean EUC
US-ASCII | US-ASCII
HZ-GB-2312 | Chinese Simplified HZ
ibm852 | Central European DOS
ibm866 | Cyrillic DOS

Within Xselerator the encoding of a files characters are preserved when the file is loaded, edited and subsequently saved. The Xselerator editors use UTF-16 internally - converting to and from the specified encodings on load/save.

Loading:-

When loading an XML or XSL file Xselerator will attempt to detect the encoding used in the file. It does this by a simplified algorithm which is as follows:-

1) Detection of the BOM (Byte Order Marker)

Xselerator examines the file to see if the file data begins with a BOM (Byte Order Marker). The BOM is a sequence of characters that specify the encoding of the rest of the file. Xselerator recognises the following BOMs:-

xEF xBB xBF UTF-8

xFF xFE UTF-16 (Little-endian)

xFE xFF UTF-16 (Big-endian)

2) Detection of hi-lo byte

If no BOM is detected Xselerator will check to see if the file is encoded as UTF-16 (Little or Big-endian) by examing the first two bytes of the file. If either of the first two bytes of the file is x00 then Xselerator will assume the file to be UTF-16 Little or Big-endian (as appropriate).

3) Detection of the encoding specified in the XML prolog

Xselerator will attempt to detect and examine the encoding specified by the XML prolog.

4) Assumption of UTF-8 (the XML standard default)

If the previous two steps fail to determine the encoding of the file Xselerator will assume that the file is UTF-8.

Saving:-

When saving an XML or XSL file Xselerator performs the following tests to determine the encoding and requirement of a BOM:-

1) Instruction from 'Save as' dialog

If the file is being saved on instruction from a 'Save as' dialog and the encoding has been specified (i.e. not left as default) then Xselerator will use this specified encoding.

2) Detection of the encoding specified in the XML prolog

If the required encoding has not been instructed Xselerator will attempt to detect and examine the encoding specified by the XML prolog in the file to be saved.

3) Assumption of UTF-8 (the XML standard default)

If the previous two steps fail to determine the encoding of the file Xselerator will assume that the file is UTF-8 (with no BOM).

UTF-8

The Unicode UTF-8 encoding uses a variable number of bytes for encoding each character. Each character below $80 is always encoded using a single byte - unicode characters above this range may be encoded with between 2 and 6 bytes.

UTF-16

The Unicode UTF-16 encoding nominally uses two bytes to encode each character (although some characters may use 4 bytes).

UTF-16 Little and Big-endian

The terms Little-endian and Big-endian determine the order in which the msb (most significant byte) and lsb (least significant byte) are stored. In windows (and other Intel based systems) the bytes are stored as lsb first - which is known as Little-endian. Big-endian systems store the msb first. The BOM (Byte Order Marker) for UTF-16, by the arrangement of the bytes, denote the endian used.


HTML-Tidy

The TidyCOM component optionally used by Xselerator can be downloaded from:-

http://perso.wanadoo.fr/ablavier/TidyCOM

TidyCOM is written by André Blavier:-

http://perso.wanadoo.fr/ablavier

TidyCOM is a wrapper for HTML-Tidy, written by Dave Raggett:-

http://www.w3.org/People/Raggett

http://www.w3.org/People/Raggett/tidy/


Recommended Reading

Essential reading and reference for anyone writing XSLT:-

XSLT Programmer's Reference Title: XSLT Programmer's Reference (2nd Edition)

Author: Michael Kay

ISBN: 1861005067

Everything about XML:-

Professional XML Title: Professional XML (2nd Edition)

Author: Jonathan Pinnock et al

ISBN: 1861005059


Debugger Current - WithParam

Debugger Current display

<xsl:with-param>

The display shows the contents of the name and select attributes of the <xsl:with-param> element.

The actual value of the parameter is shown and the type of the value (string, number, boolean or node-set). If the value type is a node-set then the content of the node-set is displayed at the bottom. The node-set is displayed differently depending on where the node-set is derived from:-

if the node-set is derived directly from nodes in the input XML (e.g. specified by an XPath expression in the select attribute of the <xsl:with-param> itself) then the nodes in the node-set are displayed as a list.

if the node-set is derived from generated nodes (e.g. child nodes of the <xsl:with-param> element itself) then the nodes are displayed as an XML fragment - as the nodes will be detached from the input XML. The XML fragment is displayed as highlighted XML.

When the parameter value is shown as a list of node the node column of the list shows the name of the selected node and a small icon as visual indicator of the node type - the full node type description is also shown in the node type column. For each node listed a value is shown - this value is a simple display of the node value (including any child element values). In the value column a button is also displayed for each item in the list:-

Allows you to open a watch window for the node. The watch window shows the node as a full XML fragment (showing any child elements and attributes)

Double-click on any of the listed nodes to position and highlight that node in the input XML.

The debugger steps through all <xsl:with-param> child elements of a <xsl:call-template> element prior to the actual call to the template being made.


Confirm Replace Dialog

Confirm Replace

The confirm replace dialog appears for each occurence found of the find text when performing a replace from the Replace Text dialog. The confirm replace dialog will only appear if the Prompt On Replace option in the Replace Text dialog is checked.

Press the Yes button to replace this occurence, press the No button to skip this replacement and go to the next occurence, press the Cancel button to terminate replace process or press the Yes to all button to replace all further found occurences of the find text without further confirmation prompt.


Download File

The Download File dialog is used to open a file from a URL (i.e. download the file from that URL). This dialog is shown by pressing the Download button on either the Input XSL window toolbar or Input XML window toolbar.

The download file dialog has two tabs:-

URL

Use the URL entry to enter the URL from which you want to load the XML document or XSL stylesheet. The URL should, as normal, be prefixed by the protocol (e.g. http:). To re-load a file previously downloaded select the URL from the drop-down list.

Currently only the http: protocol is supported - the ftp: protocl is not supported.

Options

The options tab allows you to specify options that will allow files to be downloaded. For example, if your machine accesses the internet through a proxy server you will need to check the Use a proxy server option on and enter the details of the proxy server into the Address and Port edits.

Currently the FTP download options are disabled as FTP downloads are not currently supported.


HTML Tidy Results

If, as a result of a HTML-Tidy operation, there are any warnings or errors then the HTML Tidy Results dialog is shown. The number of errors and warnings is displayed at the top of the dialog, with a full list detailing each error and warning. To cancel the tidy and go to the position in the source where the error/warning occured double click on an item in the list.

To accept the results of the tidy regardless of the warnings press the OK button. Pressing OK with errors with normally result in the tidied source being completely cleared. Press Cancel Tidy button to abandon the tidy without making any changes to the source HTML/XML/XSL.

Note that after a tidy, successful or unsuccessful, the tidy operation can be undone by using Ctrl-Z to undo the changes.


Auto Tag Completes

The auto tag completes window show the closing tags that are yet to be inserted into your code. This list is added to by pressing Shift+Ctrl+> at the end of an opening tag.

To add a closing tag from the list double-click on the required item to insert it at the current cursor position. Alternatively you can drag the closing tag to the position in the editor where the closing tag is to be inserted.

This window is only available when the Extended auto tag completion option is checked in Editor Options.

Currently stored extended auto tag completes can also all be inserted into the code by pressing Shift+Ctrl+<


Full License Activation

When you purchase Xselerator you will be sent a Purchase Confirmation e-mail. This e-mail will contain your Xselerator Serial No and a Temporary Full License (Xselerator.LIC file). This Temporary Full License gives you 60-days grace period in which to activate a Full License (a Full License is issued for each machine that you install Xselerator on - to a maximum of 3 installs per license purchased see notes below).

This wizard allows you to enter your e-mail address and also determines a Machine ID that uniquely identifies the machine that you have installed Xselerator onto (in order for a Full License to be issued for that machine).

Follow the 3 easy steps to activating your Full License:-

Step 1

Decide how you want to send your activation request. There are 3 ways in which you can send your request:-

Online

At the end of this wizard your default internet browser will be opened and directed to the online form where you can submit your request for full license activation. The information you give in the next steps will be sent to that online form.

Give me a URL that I can use later

At the end of this wizard you will be given a URL that you can copy and use later (even from another machine) to send your request. The information you give in the next steps will be built into the URL that is generated.

By E-mail

At the end of this wizard the text for an e-mail is generated - you can then copy this text into an e-mail that you can send later (even from another machine). The information you give in the next steps is built into this e-mail message text.

Step 2

The Machine ID will have been generated for you (this ID uniquely identifies the machine you are currently running Xselerator on - and the machine for which a Full License will be issued for).

Enter the E-mail address to which you want your Full License sent to. If you have purchased a single license for Xselerator then the e-mail address you enter must be the same as the e-mail address you used when you originally purchased Xselerator. If you, or your company, has purchased multiple Xselerator licenses then you should enter an e-mail address that identifies you to your License Administrator (the person who originally purchased the licenses).

Enter your Xselerator Serial No - this can be found on a label on your CD (if you have one) or is quoted in the Purchase Confirmation e-mail (if you are not the purchaser you will need to ask your License Administrator for this information).

Step 3

That's it - you are now ready to send the request by the method you selected.

If you selected the Online option you will see a Request button - press this button to send your request now.

If you selected the Give me a URL that I can use later option you will see a URL (web address) that you can copy into your web-browser in order to send your request.

If you selected the By E-Mail option you will see an e-mail text which you can copy and send to the e-mail adress given.

Please do not alter the information that is built for you - as our systems will recognise any tampering and will refuse to send your Full License.

Install Notes - please read carefully:-

You can install Xselerator on 3 machines per license purchased - this does not mean that you are authorised breach the License Agreement. We provide the capability to install on 3 machines because we understand that most people will have two computers that they regularly use - a third install is provided so that if you change a machine or a machine is rebuilt you can easily and quickly obtain a license for that machine. If you run out of Full License activations we will reset this so that you can use Xselerator on further machines - but we reserve the right to levy a discretionary administration charge for doing this (although this charge is only normally levied if we feel that the installs are being used by different users concurrently). If you do run out of activations please contact license-admin@marrowsoft.com.


MS Trademark

Microsoft is a registered trademark of the Microsoft Corporation


Shortcut keys reference

[Help page under construction]


XML Prolog

The XML prolog (sometimes referred to as the XML declaration) is the line at the start of an XML file that looks like:-

<?xml version="1.0"?>

Note that the XML prolog even though it looks like a processing instruction is not actually a processing instruction.